Мне нужно показать несколько сообщений на моем сайте. Эти посты объединяют внутренние и внешние посты. Внешние сообщения периодически импортируются и сохраняются в моей БД с помощью cronjob.
Перед показом постов извлекаю текст из всего HTML. Кроме того, я пытаюсь найти первое изображение, содержащееся в посте, продолжая, пока не найду изображение, высота и ширина которого соответствуют моим требованиям. (Я показываю только небольшую версию текста и одну картинку из поста в качестве тизера)
Чтобы найти наиболее подходящую картинку, я использую getimagesize, но, к сожалению, это часто создает время выполнения PHP в несколько секунд!
Как я могу ускорить мою функцию ниже? Я отчаянно нуждаюсь в подсказках и хороших способах настройки !!
Заранее спасибо
//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;
}
}