Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Climaco en 23 de Marzo 2015, 18:52
-
Hola, estoy empezando a estudiar php y estoy atrancado en el tema de leer un fichero y devolverlo en un array, al pedir por pantalla una posición del array me sale error de "Array to string conversión".
Este es el código:
<?php
function LeerCrearArr($ruta){
$arch=$ruta;
$fp = fopen($arch,"r");
$cont=0;
while(!feof($fp)){
$linea = fgets($fp);
$Arr[$cont]=array($linea);
$cont1=$cont+1;
$cont=$cont1;
}
return $Arr;
}
$resul= LeerCrearArr('C://wamp/www/Ejemplos/Parte 4\EscrN.txt');
echo count($resul);
echo 'El contenido de la posición 0 es: ' . $resul[0];
echo 'El contenido de la posición 1 es: ' . $resul[1];
echo 'El contenido de la posición 2 es: ' . $resul[2];
?>
Gracias por su ayuda
-
Hola, hay varias cosas que deberías mejorar. Una es no escribir líneas que no sean necesarias o utilizar variables simplemente como transmisoras de valores.
$arch=$ruta; no hace nada útil, por tanto mejor trabajar con $ruta directamente
Esto también es no útil:
$cont1=$cont+1;
$cont=$cont1;
Ahí debes trabajar directamente con $cont, añadir más variables no resulta útil.
Esto está mal planteado: $Arr[$cont]=array($linea);, estás creando una definición según la cual cada elemento de $Arr es un array a su vez
Este código puede ser una solución:
<?php
function LeerCrearArr($ruta){
$fp = fopen($ruta,"r");
$cont=0;
while(!feof($fp)){
$linea = fgets($fp);
$Arr[$cont]=$linea;
$cont=$cont+1;
}
return $Arr;
}
$resul= LeerCrearArr('prueba.txt');
echo 'Hay '.count($resul). ' elementos en el array <br/>';
for($i=0; $i<count($resul);$i++){
echo 'El contenido de la posicion'. $i .' es: ' . $resul[$i].'<br/>';
}
?>
Salu2