搜尋

首頁  >  問答  >  主體

smarty 模板中的 getimagefile() 隨機工作

在照片庫範本(CMSMS)中,我使用以下程式碼:

<ul>
{foreach from=$images item=image}
{$imagesize=getimagesize($image->file)}
<li> name : {$image->file} <em>width :</em> {$imagesize[0]}- <em>height:</em> {$imagesize[1]} </li>
{/foreach}
</ul>

每次載入圖庫時,僅檢索一些圖像的尺寸(寬度和高度),有時是全部圖像。它是完全隨機的,不一定是相同的圖像。顯然我嘗試了來自不同來源的不同圖像。

我遇到開啟流失敗錯誤:連線被拒絕。 Ctrl F5 隨機給出

這是一個共享託管 (OVH)。

我在網站的根目錄創建了一個 php 檔案和一個圖片目錄(很多)。

<?php

function walkDir($path = null) {
    if(empty($path)) {
        $d = new DirectoryIterator('./testqdima');
    } else {
        $d = new DirectoryIterator($path);
    }

    foreach($d as $f) {
        if(
            $f->isFile() && 
            preg_match("/(\.gif|\.png|\.jpe?g)$/", $f->getFilename())
        ) {
            list($w, $h) = getimagesize($f->getPathname());
            echo "<p>".$f->getFilename() . " Dimensions: " . $w . ' ' . $h . "</p>";
        } elseif($f->isDir() && $f->getFilename() != '.' && $f->getFilename() != '..') {
            walkDir($f->getPathname());
        }
    }
}

walkDir();

?>

它工作得很好,所有圖像都已處理。

所以如果有人以前遇到過這個問題...

P粉715274052P粉715274052531 天前626

全部回覆(1)我來回復

  • P粉515066518

    P粉5150665182023-09-11 11:29:41

    許多託管服務提供者會施加連線限制和/或連線速率限制(或類似方式)來應對 DDOS 攻擊(或出於資源分配考慮)。

    對於連線速率限制,它是:

    Connection Rate Limit: a number that specifies the number of 
    new connections accepted per second for the virtual server.

    他們也可能採用其他方法來限制每秒 PHP 呼叫/特定 PHP 方法呼叫的數量。

    對於模板方法,每次呼叫getimagesize都是一個單獨請求,因此可能會觸發限制並導致連接被拒絕錯誤

    對於PHP方式,它被視為單一請求,因此它會成功通過。

    我認為你只能透過與託管公司交談來解決問題(但他們可能不會招待你,因為他們仍然需要解決可能的DDOS 等),否則請堅持你的PHP 解析圖像記錄的方式(或切換到另一家託管公司/使用專用伺服器)

    回覆
    0
  • 取消回覆