Foros del Web » Programando para Internet » PHP »

Manejo De Cadenas Y Matrices

Estas en el tema de Manejo De Cadenas Y Matrices en el foro de PHP en Foros del Web. -Cadenas.php:quiero cortar una cadena para seleccionar el directorio anterior al archivo elegido lo he echo de una forma un poco mas complicada pero es para ...
  #1 (permalink)  
Antiguo 06/06/2003, 13:39
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 0
Manejo De Cadenas Y Matrices

-Cadenas.php:quiero cortar una cadena para seleccionar el directorio anterior al archivo elegido
lo he echo de una forma un poco mas complicada pero es para practicar.

<HTML>
<HEAD>
<TITLE> Manejo de cadenas </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?
$path="C:\Archivos de programa\hola.txt";
$n=0;
$longitud=strlen($path);
for($i=0;$i<=$longitud;$i++)
{

$matriz[0][$i]=substr($path,$i,1);
echo "{$matriz[0][$i]}";

}
for($i=$longitud;$i<=0;$i--)
{
$n=$n+1;
if ($matriz[0][$i] == "\")
break;
}
$n=$n+1;
$longitud=$longitud-$n;
$path=substr($path,1,$longitud);
echo "$path";
?>
</BODY>
</HTML>
LINEA 31

-Me sale el error en la linea despues de </html> y no se porque:
Parse error: parse error, unexpected $end in C:\asp\php\cadenas.php on line 31

Última edición por dardd; 06/06/2003 a las 13:41
  #2 (permalink)  
Antiguo 06/06/2003, 15:25
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Cuando PHP te marca un error fuera del codigo PHP, en el codigo HTML, es porque se te habra olvidado cerrar unas comillas, un ; , un ), una } o algo asi. Empieza ha revisar todas las lineas desde la ultima hasta la primera. Y para poner codigo PHP en los foros, usa las etiquetas que estan para eso.
Código PHP:
<HTML>
<HEAD>
<TITLE> Manejo de cadenas </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<?
$path
="C:\Archivos de programa\hola.txt";
$n=0;
$longitud=strlen($path);
for(
$i=0;$i<=$longitud;$i++)
{

$matriz[0][$i]=substr($path,$i,1);
echo 
"{$matriz[0][$i]}";

}
for(
$i=$longitud;$i<=0;$i--)
{
$n=$n+1;
if (
$matriz[0][$i] == "\")
break;
}
$n=$n+1;
$longitud=$longitud-$n;
$path=substr($path,1,$longitud);
echo "
$path";
?>
</BODY>
</HTML>
Esto suele ayudar ya que con el resalto de sintaxis se puede ver por el color donde puede estar el fallo. Yo mirandolo en mi editor localizo el fallo aqui:
Código PHP:
if ($matriz[0][$i] == "\") 
¿Que cual es el fallo? Pues muy sencillo. Has abierto una cadena con " y se te ha oldado cerrarla. "Estas tonto, estan ahi mismo, detras del \ ". Exactamente por eso de estar detras de \, que es el caracter de escape, PHP no lo interpreta como comillas de cierre de cadena. Para PHP has comenzado una cade y quieres que el primer caracter de la cadena sea ". Solucion: usa comillas simples ':
Código PHP:
if ($matriz[0][$i] == ) 
o si quieres usar comillas dobles escapa el caracter de escape:
Código PHP:
if ($matriz[0][$i] == "\\\\"
Espero haber sido de ayuda.

PD: Ahora entiendo por que no has usado las etiquetas. Se come los \ de dentro del codigo. He tenido que poner para la segunda solucion \\\\ para que se vea \\.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 06/06/2003 a las 15:28
  #3 (permalink)  
Antiguo 06/06/2003, 15:28
Avatar de juque  
Fecha de Ingreso: marzo-2002
Ubicación: Temuco, Chile
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Hola.

En la linea 18 de tu codigo
cambia esto if ($matriz[0][$i] == "\");
por: if ($matriz[0][$i] == "\\");

La representación del "\" es "\\"

Pero esto que quieres hacer tu yo lo haría así:
Código:
$path="C:\Archivos de programa\hola.txt";
$arreglo = explode('\\',$path);
//muestrame el arreglo
echo '<pre>';
var_dump($arreglo);
echo '</pre>';
print($arreglo[count($arreglo)-2]);
__________________
~~
www.juque.cl
  #4 (permalink)  
Antiguo 06/06/2003, 19:44
 
Fecha de Ingreso: junio-2003
Mensajes: 102
Antigüedad: 14 años, 6 meses
Puntos: 0
Muchas gracias Juque, te lo has currado si necesitas algo pregunta por si acaso.
  #5 (permalink)  
Antiguo 09/06/2003, 03:32
Avatar de jama  
Fecha de Ingreso: junio-2003
Mensajes: 41
Antigüedad: 14 años, 6 meses
Puntos: 0
hola dardd, no tengo muy claro lo que querias, pero te he entendido que quieres la parte del path correspondiente al directorio, y eso lo consigues con la función interna de php dirname(), puedes ver más documentación de esto en el manual, concretamente en: http://www.php.net/manual/es/function.dirname.php

Hasta luego.
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 13:35.