filectime против filemtime для времени изменения файла?
Я пытаюсь убедиться, что некоторые изображения не кэшируются при их изменении, но которые были бы более подходящими для этого filectime
или filemtime
?
Я не вижу большой разницы с руководствами 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?" />
2 ответов
поскольку вы имеете дело с кэшированием изображений, filectime является innappropriate-он отмечает последний раз
когда разрешения, владелец, группа или другие метаданные из индекса обновляется
вы хотите знать, изменилось ли содержимое файла изображения - если оно было изменено, обрезано или заменено полностью.
следовательно filemtime более подходит для вашего приложения:
при записи блоков данных файла то есть время, когда содержимое файла было изменено
Если вы не хотите ? чтобы всегда появляться, сначала установите filemtime в переменную и проверьте ее:
$filemtime = @filemtime("/images/123.png");
<img src="/images/123.png<?= $filemtime ? '?' . $filemtime : ''?>" />
еще лучше, проверьте наличие файла с file_exists () перед запуском filemtime
Примечание: В большинстве файловых систем Unix файл считается измененным когда его данные индекса изменяются; то есть, когда разрешения, владелец, группа или другие метаданные из индекса обновляются. Смотреть также filemtime () (который вы хотите использовать, когда хотите создать "Последние измененные" нижние колонтитулы на веб-страницах) и fileatime().
Итак, вы хотите использовать filemtime
.