getimagefile() dalam templat smarty berfungsi secara rawak
P粉715274052
P粉715274052 2023-09-11 00:04:59
0
1
509

Dalam templat galeri foto (CMSMS) saya menggunakan kod berikut:

<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>

Setiap kali galeri dimuatkan, dimensi (lebar dan tinggi) hanya beberapa imej diambil, kadangkala kesemuanya. Ia benar-benar rawak dan tidak semestinya imej yang sama. Jelas sekali saya mencuba imej yang berbeza dari sumber yang berbeza.

Saya mendapat ralat gagal Strim Terbuka: Sambungan ditolak. Ctrl+F5 memberi secara rawak

Ini adalah pengehosan kongsi (OVH).

Saya mencipta fail php dan direktori imej (banyak daripadanya) dalam akar tapak web.

<?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();

?>

Ia berfungsi hebat dan semua imej diproses.

So kalau ada yang pernah hadapi masalah ni sebelum ni...

P粉715274052
P粉715274052

membalas semua(1)
P粉515066518

Banyak penyedia pengehosan mengenakan had sambungan dan/atau had kadar sambungan (atau serupa) untuk memerangi serangan DDOS (atau atas sebab peruntukan sumber).

Untuk mengehadkan kadar sambungan, ia adalah:

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

Mereka juga mungkin menggunakan kaedah lain untuk mengehadkan bilangan panggilan PHP/panggilan kaedah PHP khusus sesaat.

Untuk kaedah templat, setiap panggilan getimagesize adalah permintaan berasingan , jadi boleh mencetuskan pendikitan dan mengakibatkan ralat penolakan sambungan

Untuk cara PHP, ia dianggap sebagai satu permintaan, jadi ia akan lulus dengan jayanya.

Saya rasa anda hanya boleh menyelesaikan isu ini dengan bercakap dengan syarikat pengehosan (tetapi mereka mungkin tidak menghiburkan anda kerana mereka masih perlu menyelesaikan kemungkinan DDOS dll), jika tidak, berpegang pada cara PHP anda menghuraikan rekod imej (atau beralih ke pengehosan A yang lain syarikat / menggunakan pelayan khusus)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!