我试图确保在修改某些图像时不会将其缓存,但是更适合此filectimefilemtime吗?

我真的看不出与php手册有太大区别吗?会更快吗?

<img src="/images/123.png?<?=md5(@filectime("/images/123.png"))?>" />
<img src="/images/123.png?<?=md5(@filemtime("/images/123.png"))?>" />

还有像这样的功能,不会在文件错误时发出e_warning吗?

理想情况下,我不想只提供问号<img src="/images/123.png?" />

最佳答案

在处理图像缓存时,filectime是不合适的-它标志着最后一次:

您想知道图像文件的内容是否已更改-是否已调整大小,裁剪或完全替换了它。
因此,filemtime更适合您的应用程序:

如果您不希望?始终显示,请先将filemtime设置为变量并进行测试:

$filemtime = @filemtime("/images/123.png");

<img src="/images/123.png<?= $filemtime ? '?' . $filemtime : ''?>" />
更好的是,在使用file_exists()之前,先使用filemtime测试文件是否存在。

10-01 11:57