Obtener el tamaño de una imagen en PHP

21 abril, 2010 · Alex Borrás
El Blog de Alex Borrás · https://alexborras.com/obtener-el-tamano-de-una-imagen-en-php/

Es conocida la función PHP para obtener las dimensiones de una imagen:

[PHP]
$image = getimagesize($img_url);
[/PHP]

Sin embargo en algunos servidores se produce el siguiente error al utilizar esta función: URL file-access is disabled. Error que también suele darse en la función file_get_content().

Esto es debido a que las aplicaciones como WordPres, Joomla, etc, No utilizan las directivas allow_url_fopen y allow_url_include por motivos de seguridad. Una opción es activar estas directivas desde el fichero PHP.ini con las siguientes instrucciones:

[PHP]
allow_url_fopen = On
allow_url_include = On
[/PHP]

Y también existe una alternativa para obtener el tamaño de la imagen con estas directivas desactivadas y es utilizar la librería CURL de PHP. Veamos un ejemplo:

[PHP]
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $first_img);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);
$new_image = ImageCreateFromString($contents);
$imgtmp = WP_CONTENT_DIR . «/uploads/temp.jpg»;
imagejpeg($new_image, $imgtmp,100);
$size = getimagesize($imgtmp);
[/PHP]

Para consultar más ejemplos de utilización de CURL visitar este interesante artículo.