«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как ускорить получение размера изображения в PHP: является ли file_get_contents решением?

Как ускорить получение размера изображения в PHP: является ли file_get_contents решением?

Опубликовано 5 ноября 2024 г.
Просматривать:190

How to Speed Up Image Size Retrieval in PHP: Is file_get_contents the Solution?

Как молниеносно получить размер изображения в PHP с помощью file_get_contents

Получение размеров изображения для множества удаленных изображений может оказаться трудоемкой задачей, особенно используя getimagesize. Вот альтернативный подход, который использует file_get_contents для быстрого получения размеров изображения:

Использование пользовательской функции PHP

Следующая функция ranger() считывает определенный диапазон байтов с удаленного изображение, позволяющее быстро извлекать размеры:

function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

Извлечение размера изображения

После получения данных изображения вы можете определить его размеры с помощью imagecreatefromstring() и встроенных функций анализа изображения:

$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);

Измерение производительности

При использовании этого метода процесс получения размеров изображения значительно ускоряется:

$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";

Результаты теста

Извлечение примера изображения заняло всего 0,20859 секунды его размеры. Загрузка 32 КБ данных при таком подходе оказалась эффективной. Применяя этот метод, вы можете быстро получить размеры удаленных изображений, сводя к минимуму узкие места, обычно возникающие при использовании getimagesize.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3