<script src="epub.min.js"></script>
"use strict";
var Book = ePub("text/1/", { width: 400, height: 600, spreads : false });
애초 목표는 EPUB 파일의 표지와 목차 정도의 서지정보를 추출하는 것이었기 때문에 PHP의 기본 라이브러리를 이용하는 것으로 방향 전환.
function check_archive_file($filename)
{
$fp = fopen($filename);
$line = fgets($fp);
fclose($fp);
if (strpos($line, "PK") !== false) {
return true;
}
return false;
}
zip://파일경로#압축파일내부경로$chapter1_filename = "zip://./text/epubs/" . $filename . "#OEBPS/chapter1.xhtml";
$reader = new XMLReader();
$reader->open($chapter1_filename);
while ($reader->read()) {
print $reader->value;
}
$reader->close();
파일 경로를 적을 때 위의 예제와 같이 상대 경로로 지정하면 안 될 수 있으므로, 문제가 생기면 절대 경로로 변경해야 함
위 코드는 $reader→value를 이용해서 XHTML 파일 내의 모든 텍스트를 추출한 것이었는데 특정 엘리먼트의 값만을 추출하려면 다음과 같은 방식으로 가능함
$zip = new ZipArchive();
if ($zip->open($path)) {
$fp = $zip->getStream('OEBPS/chapter1.xhtml');
if ($fp) {
while (!feof($fp)) {
$data = fread($fp, 2);
print($data);
}
}
fclose($fp);
}
$zip->close();