仅从ePub中提取文本

时间:2013-09-14 14:53:35

标签: php html zip epub

我正在尝试对电子书进行一些文本分析,所以我需要从epub文件中提取纯文本。下面是来自php.net的示例代码,它解压缩epub然后回显其所有内容。

我的问题是它也试图回显图像,所以我得到了很多:��̹,{ϥ㓦,�[k�رO?���被回应。理想情况下它只会给我超基本的纯文本。关于如何跳过回显$zip_entry图像(或任何非文本)的任何想法?

谢谢!

$zip = zip_open("book.epub");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}

1 个答案:

答案 0 :(得分:0)

有没有

content.opf

文件在解压缩的epub的根目录中?如果是这样,请检查它的内容。你应该看到类似的东西:

<item id="chapter19" href="zzzzzzz.xhtml" media-type="application/xhtml+xml" />
<item id="image1" href="images/yyyyy.jpg" media-type="image/jpeg" />

这应该会让你知道如何避免图像。