Foros del Web » Programando para Internet » PHP »

Problema con la " \ " en una cadena

Estas en el tema de Problema con la " \ " en una cadena en el foro de PHP en Foros del Web. Hola a todos Tengo un pequeño problema que no consigo resolver. He hecho una búsqueda en el foro para ver que podía utilizar, pero tanto ...
  #1 (permalink)  
Antiguo 01/02/2005, 16:44
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
Problema con la " \ " en una cadena

Hola a todos
Tengo un pequeño problema que no consigo resolver. He hecho una búsqueda en el foro para ver que podía utilizar, pero tanto explode, como htmlentities no me han funcionado.
El problema es el siguiente:
Tengo un pequeño sistema de noticias. Cada noticia tiene un fichero con su contenido. Con un pequeño script que cogí de aquí, puedo subir el fichero al web. En el formulario que me coge el nombre del file, al darle a examinar, me coge toda la ruta del archivo. Es decir, me coge la ruta local del fichero, tal que así, c:\dir\subdir\mifile.txt
Necesito que la variable que me coge el nombre del fichero no me coja la ruta entera, necesito solo el nombre del fichero. Pero tengo un problema con la barra invertida. Al usar explode no puedo terminar bien la cadena de php. Si uso htmlentities, consigo quitar las barras, pero no consigo pasar toda la cadena sin barras a un array para poder tratarlo, bueno si consigo pasarla como array, pero con solo un campo y eso no es lo correcto. Esto es lo que tengo en el file que recoge el formulario.


Código PHP:
    $ruta_archivo $http_noticia;//asigno la dirección local del fichero c:\dir\subdir\mifichero.txt
    
$trozos_ruta_archivo explode ('(\)'$ruta_archivo);
    
$numero count($trozos_ruta_archivo);
    
$http_noticia $trozos_ruta_archivo[$numero 1]; 
Gracias por vuestra ayuda.
Un saludo
  #2 (permalink)  
Antiguo 01/02/2005, 16:53
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Para que se interprete la cadena separatoria de explode cómo la barra invertida, tienes que poner dos veces la barra invertida "\\"

Salu2 ;)
__________________
[+]
[+]
  #3 (permalink)  
Antiguo 01/02/2005, 16:59
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
Ahora si. Quito los paréntesis y pongo la barra invertida doble. Hago una pequeña prueba y perfecto, me da solo el nombre del fichero con su extensión.

Gracias yoseman
  #4 (permalink)  
Antiguo 01/02/2005, 17:15
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 13 años
Puntos: 7
Existe un función para eso
Código PHP:
 $http_noticia basename($http_noticia); 
http://www.php.net/basename
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 01/02/2005, 17:44
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Hola,

El problema es que la función basename tiene problemas cuando hay barras invertidas de tipo \ cómo la dirección que decía Bit11 "c:\dir\subdir\mifile.txt"
ASunque por lo visto depende del s.o

Salu2 ;)
__________________
[+]
[+]
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:47.