¿Cómo obtener la extensión de un archivo en PHP? Métodos confiables y trampas
¡Hola a todos! Soy un desarrollador PHP principiante y me encontré con una tarea aparentemente simple: necesito obtener la extensión de un archivo a partir de su nombre. Tengo una variable, por ejemplo, `$filename = "document.pdf"` o `$path = "/var/www/uploads/image.jpg"`. Necesito extraer "pdf" o "jpg".
Probé la forma más simple — explode con punto:
```php
$filename = "document.pdf";
$parts = explode('.', $filename);
$ext = end($parts);
echo $ext; // pdf
```
Pero inmediatamente surgieron problemas. Primero, ¿qué pasa si el nombre del archivo tiene varios puntos, por ejemplo, `my.file.name.txt`? Mi código devolverá "txt", que parece correcto, pero ¿y si no es lo que se necesita? Segundo, ¿qué pasa si es una ruta completa y no solo un nombre? Por ejemplo, `/home/user/file.tar.gz` — explode dividirá todo por barras y puntos, y el resultado puede ser inesperado. Tercero, ¿qué hacer con archivos sin extensión, como `Makefile` o `.htaccess`? Mi código devolverá "htaccess", pero eso no es una extensión en el sentido clásico.
He oído que hay una función incorporada
No answers yet.
Inicia sesión para dejar una respuesta
Blogs