这个函数虽然看起来好像没多大用处,不过在有些时候还是能用的上的。正在建立自己函数库的可以收藏一下。
提示:这个函数不是我原创的,原创的地址在这里
http://hi.baidu.com/luanxian/item/06ab9d24be2b4e1409750879,我稍微添加了两行判断错误的代码。
下面给出代码:
<?php
/**
* 获取PDF文件页数的函数获取
* 文件应当对当前用户可读(linux下)
* @param [string] $path [文件路径]
* @return [array] [数组第一位表示成功与否,第二位表示提示信息]
*/
function getPdfPages($path){
if(!file_exists($path)) return array(false,"文件\"{$path}\"不存在!");
if(!is_readable($path)) return array(false,"文件\"{$path}\"不可读!");
// 打开文件
$fp=@fopen($path,"r");
if (!$fp) {
return array(false,"打开文件\"{$path}\"失败");
}else {
$max=0;
while(!feof($fp)) {
$line = fgets($fp,255);
if (preg_match('/\/Count [0-9]+/', $line, $matches)){
preg_match('/[0-9]+/',$matches[0], $matches2);
if ($max<$matches2[0]) $max=$matches2[0];
}
}
fclose($fp);
// 返回页数
return array(true,$max);
}
}
/**
* 测试代码
*/
$results=getPdfPages("demo.pdf");
if($results[0]){
// 在这里放置成功读取后的处理代码
}else{
// 在这里放置失败的处理代码
}
?>
性能方面,在我的ubuntu机器上读取1个600页左右的文件大概耗时1秒,应该是不会有太大问题。