Avatar ·

¿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