【问题标题】:PHP Explode with an Unicode character as separatorPHP Explode 使用 Unicode 字符作为分隔符
【发布时间】:2012-09-02 09:36:06
【问题描述】:

XPDFs pdftotext 将 pdf 转换为文本并在命令行级别输出。如果需要,它会在 TextOutputDev.cc 中指定的页面之间插入 PageBreaks:

eopLen = uMap->mapUnicode(0x0c, eop, sizeof(eop));

此 Unicode 符号与编码无关,-enc ASCII7 不会更改它。我目前愿意使用 PHP 将 PDF 文件转换和拆分为几个 TXT 页面用于数据库存储。但是,以下功能确实有效,但一次转换整个 PDF 所需的时间是转换的两倍。

for($i = 1; $i <= $pages[0]; $i++)
    $page[$i] = shell_exec('/usr/bin/pdftotext sample.pdf -f '.$i.' -l '.$i.' -');

我应该如何使用 Unicode 字符作为分隔符 explode(0x0c, $wholePDF)?目前,page[$i] 似乎没有从 shell_exec() 中检索那些奇怪的 Unicode PageBreak 字符。我尝试了几个用于编码的标头(尤其是 UTF-8),但到目前为止还没有成功。

【问题讨论】:

    标签: php unicode explode pdftotext xpdf


    【解决方案1】:

    0x0c 是一个 ASCII 字符(即在 0-127 范围内),因此在 UTF-8 编码中它表示为自身而不是多字节序列。你应该可以explode(chr(0x0c), $wholePDF)

    【讨论】:

    • 像魅力一样工作。基准测试它比我的第一种方法快 1.8 倍以上。谢谢。
    【解决方案2】:

    我猜你可以把它转换成另一种类型,然后用符号来爆炸:

    http://www.php.net/manual/en/ref.mbstring.php#74722

    【讨论】:

      猜你喜欢
      • 2017-10-25
      • 2014-03-07
      • 2013-10-18
      • 1970-01-01
      • 2014-09-09
      • 2017-09-06
      • 2014-02-10
      • 2013-12-24
      • 2017-07-08
      相关资源
      最近更新 更多