Foros del Web » Programando para Internet » PHP »

$_server['request_uri']

Estas en el tema de $_server['request_uri'] en el foro de PHP en Foros del Web. Hola. Tengo este Codigo. Código PHP: $url  =  explode ( "/" ,  $_SERVER [ 'REQUEST_URI' ]);  $ext  =  $url [ 1 ]; echo  $ext ;  ...
  #1 (permalink)  
Antiguo 30/04/2005, 11:43
Avatar de TW3
TW3
 
Fecha de Ingreso: diciembre-2004
Mensajes: 45
Antigüedad: 13 años
Puntos: 0
Pregunta $_server['request_uri']

Hola.

Tengo este Codigo.

Código PHP:

$url 
explode("/"$_SERVER['REQUEST_URI']); 

$ext $url[1];

echo 
$ext
El cual Imprime parte de la Direccion.

www.web.com/archivo.php

- archivo.php ESTO ES LO QUE IMPRIME
- hay alguna forma que me de Solo archivo sin .php ?

Saludos

Última edición por TW3; 30/04/2005 a las 11:51
  #2 (permalink)  
Antiguo 30/04/2005, 11:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Código PHP:
 $script explode('.'$ext);
$nombre_archivo $script[0];
echo 
$nombre_archivo
Saludos
  #3 (permalink)  
Antiguo 30/04/2005, 12:15
Avatar de TW3
TW3
 
Fecha de Ingreso: diciembre-2004
Mensajes: 45
Antigüedad: 13 años
Puntos: 0
Gracias.
  #4 (permalink)  
Antiguo 30/04/2005, 12:29
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 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
  #5 (permalink)  
Antiguo 02/05/2005, 13:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo usaría basename() simplemente .. (aplicado a PHP_SELF)

www.php.net/basename

Un saludo,
  #6 (permalink)  
Antiguo 02/05/2005, 15:06
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Iniciado por Cluster
Yo usaría basename() simplemente ..

Wow... qué comentario más déspota... Cluster... me has hecho quedar como un principiantucho....y encima con desprecio...!!!
No, ya en serio... fue una tontería mía no proponer esa función para saber el nombre del archivo (con su extensión)... se me pasó... pero lo que no sabía era que se podía obtener directamente lo que pide aquí TW3.

Es más... seguí el enlace al manual... pero automáticamente me muestra la documentación en español... y ahí la función sigue apareciendo con un solo parámetro (string path). Tuve que revisar entre los comentarios de los usuarios y ví que utilizaban un segundo parámetro.
Y claro... eso me hizo revisar la documentación en inglés y ahí aparecen ya los dos parámetros...
¿Saben cómo se resuelve lo que me tomó como 6 líneas?
Código PHP:
echo basename($_SERVER['PHP_SELF'], '.php'); 
Gracias Cluster, aprendí algo nuevo hoy.

Saludos
  #7 (permalink)  
Antiguo 03/05/2005, 12:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes razón jpinedo ... la versión en castellano del manual oficial de PHP deja mucho que desear (incompleta) vs a la versión en ingles.

Suelo poner por aquí los links hacia el tutorial de PHP con notación corta .. que .. al redireccionar según IP php.net .. suele dejar en la versión en castellano (según locación claro ..) .. pero ahí donde dá el link /es/ .. cambiamos rápidamente a /en/ para ver la versión en ingles. Lo principal es ver la versión en ambos indiomas .. tal vez empezar por ingles para tomar el "concepto" y de ahí completar con la de ingles.

Un saludo,
  #8 (permalink)  
Antiguo 03/05/2005, 16:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno... ese es un tema que ya se ha comentado varias veces... y siempre hemos llegado a la misma conclusión: Si se puede, mejor es consultar la documentación en inglés porque está más actualizada.
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:27.