我的服务器上有350多张图片的副本,当一个人试图查看一个,如果它超过5分钟,我希望我的服务器检查另一个网站我正在镜像数据(他们坚持在我镜像而不是hotlinking)并获得最新的副本。有关如何做到这一点的任何想法?
我可以做一个cron脚本并获取所有图片,但是这样做有问题。(我的主持人限制我每15分钟一次,我必须得到很多图片,我的用户可能会或可能不会实际上是查看。)
我想在PHP中应该有办法做到这一点,但我不知道我会从哪里开始。
答案 0 :(得分:2)
您可以通过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
}
答案 1 :(得分:1)
您可以在项目中应用ajax。 使用ajax每5分钟呼叫您的服务器并刷新您的内容。 简而言之; AJAX是关于在后台加载数据并将其显示在网页上,而无需重新加载整个页面。