<?php
function создать_epub($заголовок, $автор, $содержимое) {
// Создаем файл content.html
$content_html = '<html xmlns="http://www.w3.org/1999/xhtml"><head><title>' . $заголовок . '</title></head><body>' . $содержимое . '</body></html>';
file_put_contents('content.html', $content_html);
// Создаем архив EPUB
$zip = new ZipArchive();
$epub_file = 'output.epub';
if ($zip->open($epub_file, ZipArchive::CREATE) === TRUE) {
$zip->addFile('mimetype', 'mimetype');
$zip->addFile('container.xml', 'META-INF/container.xml');
$zip->addFile('content.opf', 'OEBPS/content.opf');
$zip->addFile('toc.ncx', 'OEBPS/toc.ncx');
$zip->addFile('content.html', 'OEBPS/content.html');
$zip->close();
}
// Удаляем временный каталог
unlink('content.html');
// Возвращаем путь к созданному EPUB файлу
return $epub_file;
}
// Пример использования функции
$заголовок = 'Пример книги';
$автор = 'Автор';
$содержимое = '<p>Это содержимое книги.</p>';
``````php
$epub_file = создать_epub($заголовок, $автор, $содержимое);
echo 'EPUB файл создан: ' . $epub_file;
?>
В свободное время люблю читать книги на своём iReader, конечно, не обходится без небольших повседневных романов, чтобы убить время. Вот в чём удобство iReader – удобство чтения сетевых текстов. Несмотря на то, что утверждается, что есть 50 000 источников книг, многие официальные романы, которые мне интересны, найти на нём невозможно, так как эксклюзивные права на многие из них принадлежат другим. Тогда приходится искать где-то другие ресурсы (обычно это завершённые книги, которые не были опубликованы в течение двух-трёх лет, что меньше влияет на автора). Также читаю официальные версии, но они не доступны в собственном магазине приложения, и нет возможности сохранить их для офлайн-чтения. Кроме уже подготовленных ресурсов, другие EPUB-файлы, хотя и могут использоваться, имеют не всегда удовлетворительное содержание и форматирование. Самостоятельная подготовка этих файлов требует много времени. Некоторые могут спросить, почему не использовать конвертационные инструменты, такие как EasyPub, ePUBee Magic и другие. Даже есть онлайн-конвертация [ePUBee](http://cn.epubee.com). Да, имея столько доступных инструментов, нет необходимости изобретать велосипед. Конечно, эти инструменты имеют общие черты, добавляющие рекламу в местах, видимых и невидимых для вас.
В свободное время люблю читать книги на своём iReader, конечно, не обходится без небольших повседневных романов, чтобы убить время. Вот в чём удобство iReader – удобство чтения сетевых текстов. Несмотря на то, что утверждается, что есть 50 000 источников книг, многие официальные романы, которые мне интересны, найти на нём невозможно, так как эксклюзивные права на многие из них принадлежат другим. Тогда приходится искать где-то другие ресурсы (обычно это завершённые книги, которые не были опубликованы в течение двух-трёх лет, что меньше влияет на автора). Также читаю официальные версии, но они не доступны в собственном магазине приложения, и нет возможности сохранить их для офлайн-чтения. Кроме уже подготовленных ресурсов, другие EPUB-файлы, хотя и могут использоваться, имеют не всегда удовлетворительное содержание и форматирование. Самостоятельная подготовка этих файлов требует много времени. Некоторые могут спросить, почему не использовать конвертационные инструменты, такие как EasyPub, ePUBee Magic и другие. Даже есть онлайн-конвертация [ePUBee](http://cn.epubee.com). Да, имея столько доступных инструментов, нет необходимости изобретать велосипед. Конечно, эти инструменты имеют общие черты, добавляющие рекламу в местах, видимых и невидимых для вас.
```Возможно, я слишком привержен идеалу и не могу этого терпеть. Поэтому я потратил два вечера на создание этого инструмента без рекламы и без ограничений — epubBuilder. Это всего лишь ранняя версия, которую можно использовать локально, немного изменив, можно запустить в Интернете и превратить его в онлайн-инструмент. Неужели это не прекрасно?## Инструкция по использованию
Откройте `index.php`, увидите следующий текст. Необходимые для заполнения поля указаны в примечаниях ниже, заполните их в соответствии с вашими данными. После заполнения используйте режим CLI, введите в консоли `php index.php`.
```php
<?php
define('ROOT', dirname(__FILE__) . '/');
define('TMPDIR', ROOT . 'tmp');
define('OS', TMPDIR . '/OEBPS/');
require ROOT . 'lib/epub.class.php';
## Заполняемая область, не изменять вышеуказанный код
$config = [
'styles' => '', // путь к пользовательским стилям, локальный
'txtPath' => ROOT . 'укажите здесь имя вашего txt файла', // положите txt файл в ту же директорию, что и index.php
'coverImg' => '', // путь к пользовательскому изображению обложки, может быть URL, но лучше хранить локально
'toc' => false, // включить ли таблицу содержания. ireader плохо поддерживает таблицу содержания (не поддерживает dl dd теги), по умолчанию отключено.
'patternType' => 1, // обязательное поле, тип структуры книги, см. ниже описание параметров
'creater' => '', // автор, обязательное поле
'bookName' => '', // название книги, обязательное поле
'language' => 'zh-CN', // язык, по умолчанию китайский
'date' => date("Y-m-d"), // дата публикации, по умолчанию текущая дата
];
## Заполняемая область завершена, не изменять нижеуказанный код
(new epub($config))->epub_builder();
1
— Глава/Раздел/Секция/Эпизод/Сезон/Том №xxxx. Рекомендуемый стандартный формат, большинство произведений соответствуют этому типу. Пример: Глава 1520 — У меня есть парень.2
— Тип 1 + Введение/Пролог/Первая глава/Пролог/Заключительная глава/Заключение/Эпилог/Эпизод. Расширенный тип 1, включающий другие типы заголовков. Пример: Эпизод — Моя история с парнем.
3
— Тип 2, но с пробелами перед заголовками, что увеличивает точность соответствия. Пример: Введение — Я тебя называю мужем.
4
— Глава/Раздел № — Заголовок. Обычный формат для английских книг. Пример: Глава 1 — Я пришёл из Земли.
5
— Текст №. Нестандартный формат. Пример: Текст 12
6
Номер
Заголовок. Часто используемый заголовок на晋江, пример: 1 Я Лэй Минглун,閣下?
Реализация метода довольно проста. Эссенцией формата EPUB является ZIP-архив, поэтому необходимо создать соответствующие HTML-страницы для каждой главы и соответствующую информацию о содержании, а затем упаковать их вместе. HTML-страницы и информация о содержании создаются с использованием шаблонных файлов, что позволяет обрабатывать все стандартные форматы.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )