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:
<?phpfunction 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:
<?phpfunction 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