PHP readfile失败但没有错误

时间:2011-11-05 23:23:56

标签: php readfile

任何人都可以帮我解决这个无意义的问题吗?

<?php
if(!readfile($path))
{
    $error = error_get_last();
    imageError('*'.$error['type'].','.$error['message'].','.$error['file'].','.$error['line'].'*'); // Outputs the error on an image
    exit;
}
?>

这会输出显示“ ,,, ”的图像 - 基本上错误是空的。 我认为这个问题可能与我试图在同一时刻读取同一个文件10次这一事实有关。我有这样的事情:

<img src="images/10/seo-friendly.jpg" />
<img src="images/10/seo-friendly2.jpg" />
<img src="images/10/seo-friendly3.jpg" />
<img src="images/10/seo-friendly4.jpg" />
<img src="images/10/seo-friendly5.jpg" />
<img src="images/10/seo-friendly6.jpg" />
<img src="images/10/seo-friendly7.jpg" />
<img src="images/10/seo-friendly8.jpg" />
<img src="images/10/seo-friendly9.jpg" />
<img src="images/10/seo-friendly10.jpg" />

然后我在.htaccess中有一个重写规则,如:

RewriteRule images/([0-9]+)/.*\.(png|jpg|gif) resize.php?id=$1 [L]

所以,会发生的事情是我基本上在同一时刻请求同一个文件10次。大部分时间它都能正常工作,但有时我会遇到这个问题(仅适用于10张图片中的1-3张)。

任何线索都非常感激。

谢谢。

2 个答案:

答案 0 :(得分:2)

readfile()返回从文件中读取的字节数。因此,您尝试读取的文件完全可能是空的并且没有发生错误。

如果确实存在错误,您可以使用set_error_handler()捕获错误并根据需要进行处理。

答案 1 :(得分:1)

问题是由于并发性差。我显然是在写作时尝试阅读图像(反之亦然)