在照片庫範本(CMSMS)中,我使用以下程式碼:
每次載入圖庫時,僅檢索一些圖像的尺寸(寬度和高度),有時是全部圖像。它是完全隨機的,不一定是相同的圖像。顯然我嘗試了來自不同來源的不同圖像。
我遇到開啟流失敗錯誤:連線被拒絕。 Ctrl F5 隨機給出
這是一個共享託管 (OVH)。
我在網站的根目錄創建了一個 php 檔案和一個圖片目錄(很多)。
isFile() && preg_match("/(\.gif|\.png|\.jpe?g)$/", $f->getFilename()) ) { list($w, $h) = getimagesize($f->getPathname()); echo "".$f->getFilename() . " Dimensions: " . $w . ' ' . $h . "
"; } elseif($f->isDir() && $f->getFilename() != '.' && $f->getFilename() != '..') { walkDir($f->getPathname()); } } } walkDir(); ?>
它工作得很好,所有圖像都已處理。
所以如果有人以前遇到過這個問題...
許多託管服務提供者會施加連線限制和/或連線速率限制(或類似方式)來應對 DDOS 攻擊(或出於資源分配考慮)。
對於連線速率限制,它是:
他們也可能採用其他方法來限制每秒 PHP 呼叫/特定 PHP 方法呼叫的數量。
對於模板方法,每次呼叫
getimagesize
都是一個單獨請求,因此可能會觸發限制並導致連接被拒絕錯誤對於PHP方式,它被視為單一請求,因此它會成功通過。
我認為你只能透過與託管公司交談來解決問題(但他們可能不會招待你,因為他們仍然需要解決可能的DDOS 等),否則請堅持你的PHP 解析圖像記錄的方式(或切換到另一家託管公司/使用專用伺服器)