我正在尝试使用此函数getPDFPages()查找上传的pdf文件中的页数;它适用于少于99页的pdf文件,但对于较大的文件不返回任何内容! 问题出在哪里?
由于
function getPDFPages($filepath)
{
//$fp = (preg_replace("/\[(.*?)\]/i", "", $filepath), "r");
$fp = fopen(preg_replace('/^.+\\\\/', '', $filepath), "r");
$max = 0;
set_time_limit(0);
if (!$fp) {
return "Could not open file: $filepath";
} else {
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 = trim($matches2[0]);
print_r($matches);
print_r($matches2);
break;
}
}
}
@fclose($fp);
}
return $max;
}
答案 0 :(得分:1)
您正在比较字符串值,而不是数值。在字符串比较中,&#34; 100&#34;小于&#34; 99&#34;就像&#34; axx&#34;小于&#34; zz&#34;按字典顺序。如果您将匹配转换为数字,则应该有效:
if ($max < (int)$matches2[0]) {
$max = (int)trim($matches2[0]);
print_r($matches);
print_r($matches2);
break;
}