任何人都可以帮我解决这个无意义的问题吗?
<?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张)。
任何线索都非常感激。
谢谢。
答案 0 :(得分:2)
readfile()
返回从文件中读取的字节数。因此,您尝试读取的文件完全可能是空的并且没有发生错误。
如果确实存在错误,您可以使用set_error_handler()
捕获错误并根据需要进行处理。
答案 1 :(得分:1)
问题是由于并发性差。我显然是在写作时尝试阅读图像(反之亦然)