我有我的服務器上的350多個圖像的副本,當一個人試圖查看一個,如果它超過5分鐘,我希望我的服務器與另一個網站檢查我是從哪個鏡像數據(他們堅持我鏡像而不是盜鏈)並獲得最新的副本。有關如何做到這一點的任何想法?我可以做一個cron腳本並獲得所有的圖像,但是這樣做存在問題(我的主機限制我每15分鐘一次,我將不得不獲取很多圖像,我的用戶可能會或可能會不實際查看。)如何判斷何時獲取新圖像?
我想應該有一種方法來在PHP中這樣做,但我不知道我會在哪裏開始。
我有我的服務器上的350多個圖像的副本,當一個人試圖查看一個,如果它超過5分鐘,我希望我的服務器與另一個網站檢查我是從哪個鏡像數據(他們堅持我鏡像而不是盜鏈)並獲得最新的副本。有關如何做到這一點的任何想法?我可以做一個cron腳本並獲得所有的圖像,但是這樣做存在問題(我的主機限制我每15分鐘一次,我將不得不獲取很多圖像,我的用戶可能會或可能會不實際查看。)如何判斷何時獲取新圖像?
我想應該有一種方法來在PHP中這樣做,但我不知道我會在哪裏開始。
您可以通過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
}
'$ image = explode(「/」,$ _SERVER ['REQUEST_URI'])[2];'花了我一段時間來調試該行。 [2]導致了這個問題。把它放在第二行,一切都很完美。 – Brandan
您可以在您的項目中應用ajax。 使用ajax每5分鐘致電您的服務器並刷新您的內容。 總之; AJAX是關於在後臺加載數據並將其顯示在網頁上,而無需重新加載整個頁面。
一個選項使列日期字段之一,它與現在相比較()當一個人想要查看一個。 –
我可以檢查圖像統計信息,並查看它的上次更新/創建時間。我不知道如何調用這個腳本,因爲圖像是由用戶動態加載的,所以主頁的php頁面不知道哪個是加載的。 – Brandan