Как молниеносно получить размер изображения в 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