PHP读取文件失败,但没有错误


PHP readfile fails but gives no error

谁能帮我解决这个无意义的问题?

<?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张)。

任何提示都非常感谢。

谢谢。

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

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

问题是由于不良的并发性。我显然是试图读取图像,而写在它(或反之亦然)