Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/04/2005, 11:29
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Pero hay un problema con estas cosas.
------------------------------------------------------------
Con lo que pones tú:
-------------------
¿Qué pasa si hay un query string?
www.web.com/archivo.php?var1=valor1&var2=valor2
Tu script imprimirá:
archivo.php?var1=valor1&var2=valor2

¿Qué pasa si el archivo no está en el raíz sino en una subcarpeta?
Por ejemplo www.web.com/carpeta1/archivo.php
Tu script imprimirá:
carpeta1 (y no es lo que quieres)

Con lo que pongo yo
-------------------
¿Qué pasa si el nombre de archivo contiene puntos (.)?
mi.archivo.con.puntos.php
Mi script imprimirá:
mi (cuando debería imprimir mi.archivo.con.puntos)
------------------------------------------------------------

Si necesitas sólo el nombre de archivo puedes hacer:
Código PHP:
$array_url explode('/'$_SERVER['PHP_SELF']);
$archivo array_pop($array_url); // nombre de archivo y extensión.

$array_archivo explode('.'$archivo);
$archivo_extensión array_pop($array_archivo); // Solo la extensión.
$archivo_nombre implode('.'$array_archivo); // Nombre sin extensión. 
También podrías hacer un substr() quitando los últimos cuatro caracteres, pero eso serviría sólo para extensiones de tres caracteres. Lo que te puse sirve para cualquier archivo y extensión.
Saludos