Yavaş getimagesize

0 Cevap php

Web siteme birden fazla mesaj göstermek gerekir. Bu mesaj, iç ve dış mesajların birleştirilir. Dış mesajlar periyodik olarak ithal ve cronjob kullanarak benim DB kaydedilir.

Mesajları göstermeden önce, bütün HTML metin ayıklamak. Ben yükseklik ve bir resim bulana kadar Ayrıca ben devam, yazı bulunan ilk resmi bulmak için çalışın genişlik benim gereksinimlerini karşılar. (Ben sadece bir iltifat olarak yazılan küçük bir metin sürümü, ve bir resim göstermek)

En uygun resim bulma amacıyla, ben getimagesize kullanabilirsiniz, ancak ne yazık ki bu genellikle birkaç saniye PHP Yürütme zaman yaratır!

Benim işlevini nasıl aşağıda hızlandırabilir? Ben ipuçları ve iyi bir ince ayar yöntemleri için umutsuz değilim!

Şimdiden teşekkürler

//extract text without tags from blog post
$content = str_get_html("".$post_text."")->plaintext;

$max_width = 475;
$picture_id = 0;

//fetch images from blog post
foreach($html->find('img') as $e) {

//get picture attributes
list($width, $height, $type, $attr) = getimagesize((is_absolute_url($e->src) ? $e->src : $_SERVER['DOCUMENT_ROOT'].$e->src));

//adjust image width & height, so it's the size of the page
$new_width = $max_width;
$new_height = $new_width / $width * $height;

//find percentage of current width versus max width
$percentage = ($width / $max_width) * 100;

    //select picture for display and resizing if the picture is large enough (we don't want to stretch it too much)
    if($percentage >= 60) {

        $e->width = $new_width;
        $e->height = $new_height;

        $picture = array('src' => $e->src, 'width' => $e->width, 'height' => $e->height);

        //stop after first picture is found :: we only need one per post
        if (++$picture_id == 1) break;

    }

}

0 Cevap