有没有一种在PHP中实现多线程模型的现实方法,无论是真实的,还是仅仅模拟它.一段时间后,有人建议你可以强制操作系统加载另一个PHP可执行文件实例并处理其他同步进程.
这个问题是当PHP代码完成执行时,PHP实例仍然在内存中,因为没有办法从PHP中删除它.因此,如果您正在模拟几个线程,您可以想象会发生什么.所以我仍然在寻找一种可以在PHP中有效地完成或模拟多线程的方法.有任何想法吗?
我花了很多时间寻找一种快速简便但却非常准确的方法来获取PDF文档中的页数.由于我在一家使用PDF工作的图形打印和复制公司工作,因此在处理文档之前必须准确了解文档中的页数.PDF文档来自许多不同的客户端,因此它们不是使用相同的应用程序生成的和/或不使用相同的压缩方法.
以下是我发现的一些不足或根本不工作的答案:
Imagick需要大量的安装,apache需要重新启动,当我最终使用它时,处理时间非常长(每个文档2-3分钟)并且它总是1在每个文档中返回页面(没有看到工作副本到目前为止,Imagick,所以我扔掉了.那是getNumberImages()和identifyImage()方法.
FPDI易于使用和安装(只提取文件并调用PHP脚本),但 FPDI不支持许多压缩技术.然后它返回一个错误:
FPDF错误:此文档(test_1.pdf)可能使用FPDI附带的免费解析器不支持的压缩技术.
这将在流中打开PDF文件,并搜索某种类型的字符串,其中包含pagecount或类似的内容.
$f = "test1.pdf";
$stream = fopen($f, "r");
$content = fread ($stream, filesize($f));
if(!$stream || !$content)
return 0;
$count = 0;
// Regular Expressions found by Googling (all linked to SO answers):
$regex = "/\/Count\s+(\d+)/";
$regex2 = "/\/Page\W*(\d+)/";
$regex3 = "/\/N\s+(\d+)/";
if(preg_match_all($regex, $content, $matches))
$count = max($matches);
return $count;
Run Code Online (Sandbox Code Playgroud)
/\/Count\s+(\d+)/(查找 …