Obtener extensión de archivo (imagen) PHP

Para obtener la extensión de un archivo ya sea imagen, PDF… existen varias formas de obtenerlo. Este proceso se suele usar por ejemplo cuando se sube una imagen a través de un formulario HTML mediante POST y al recibir los datos de la imagen se quiere por ejemplo copiar o trasladar la imagen subida a un directorio especificado por nosotros.

Algunas maneras de obtener la extensión de nuestra imagen, archivo, documento… serían las siguientes:

1- Dividir la cadena en un array separándola por puntos (usando explode) y luego acceder al último elemento del array usando la función end de PHP.

$nombre = "icono.jpg";
$array = explode('.', $nombre);
$extension = end($array);
echo $extension; //jpg

2- Usando strrpos + substr (más rápido que usar explode) .

$nombre = "icono.jpg";
$extension = substr($nombre, strrpos($nombre, '.')+1); //si se quiere mantener el punto, quitar el +1
echo $extension; //jpg o .jpg

3- Usando PATHINFO_EXTENSION (devuelve la última extensión de una ruta).

$ruta = $_FILES['image']['name'];
$extension = pathinfo($ruta, PATHINFO_EXTENSION);
echo $extension; //jpg

4- Usando la clase SplFileInfo .

La clase SplFileInfo permite usar una interfaz de alto nivel orientado a objetos para obtener la información de un fichero. Dentro de la clase se usa la función getExtension() para obtener la extensión del fichero (SplFileInfo::getExtension)

$info = new SplFileInfo('icono.jpg');
var_dump($info->getExtension()); //string(3) "jpg"

Iván Martínez

Ingeniero Informático apasionado por el mundo del desarrollo WEB. Me gusta caminar por este mundo lleno de tecnologías y día a día aprender cosas nuevas como el doctor Frankenstein ¡dadme cosas para experimentar!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.