Cómo obtener el tamaño de una imagen a la velocidad del rayo en PHP usando file_get_contents
Obtener dimensiones de imagen para numerosas imágenes remotas puede ser una tarea que requiere mucho tiempo. especialmente usando getimagesize. Aquí hay un enfoque alternativo que aprovecha file_get_contents para recuperar rápidamente tamaños de imágenes:
Uso de una función PHP personalizada
La siguiente función ranger() lee un rango de bytes específico desde un control remoto imagen, lo que permite la extracción rápida del tamaño:
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;
}
Extracción del tamaño de la imagen
Una vez obtenidos los datos de la imagen, puede determinar sus dimensiones utilizando imagecreatefromstring() y las funciones de análisis de imágenes integradas:
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
Medición del rendimiento
Con este método, el proceso de obtención de dimensiones de la imagen es significativamente más rápido:
$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)";
Resultados de la prueba
La imagen de ejemplo tardó solo 0,20859 segundos en recuperarse sus dimensiones. Cargar 32 KB de datos ha demostrado ser eficaz en este enfoque. Al aplicar esta técnica, puede obtener rápidamente tamaños de imágenes remotas, minimizando los cuellos de botella que normalmente se encuentran con getimagesize.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3