Как определить, когда нужно получать новое изображение?

У меня есть копия более 350 изображений на моем сервере, когда человек пытается просмотреть одно, если ему более 5 минут, я хочу, чтобы мой сервер проверил другой веб-сайт, с которого я копирую данные (они настаивают на моем зеркалировании вместо хотлинкинга) и получите самую новую копию. Есть мысли о том, как это сделать?

Я могу сделать cron-скрипт и получить все изображения, но есть проблемы с этим (мой хост ограничивает меня раз в 15 минут, мне нужно будет получать много изображений, которые мои пользователи могут просматривать, а могут и не просматривать). )

Я думаю, что должен быть способ сделать это в PHP, но я понятия не имею, с чего начать.

1

Решение

Вы можете обслуживать изображения с помощью php-скрипта, который позволяет вам выполнить необходимые проверки перед отображением изображения.

<img src="/index.php/image-name.jpg">

Ниже приведен один вариант для проверки

// get the image name from the uri
$image = explode("/", $_SERVER['REQUEST_URI'])[2];
// check if the image exists
if (is_file($image)) {
// get the file age
$age = filemtime($image);
if ($age < time() - (60*5)) { // 5 mins old
// file too old so check for new one
// do your check and serve the appropriate image
}
else
{
// get the image and serve it to the user
$fp = fopen($image, 'rb');
// send the right headers
header("Content-Type: image/jpg");
header("Content-Length: " . filesize($image));
// dump the picture and stop the script
fpassthru($fp);
exit();
}
}
else
{
// handle error
}
2

Другие решения

Вы можете применить AJAX в вашем проекте.
звоните на сервер каждые 5 минут, используя ajax, и обновляйте контент.
Короче; AJAX — это загрузка данных в фоновом режиме и отображение их на веб-странице без перезагрузки всей страницы.

1

По вопросам рекламы [email protected]