Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Climaco en 23 de Marzo 2015, 18:52

Título: Php Ejercicio CU00836B -Leer Fichero error "Array to string conversion"
Publicado 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:

Código: [Seleccionar]
<?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;
}
$resulLeerCrearArr('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
Título: Re:Php Ejercicio CU00836B -Leer Fichero error "Array to string conversion"
Publicado por: Ogramar en 23 de Marzo 2015, 21:37
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:

Código: [Seleccionar]
<?php
function LeerCrearArr($ruta){
$fp fopen($ruta,"r");
$cont=0;
while(!
feof($fp)){
$linea fgets($fp);
$Arr[$cont]=$linea;
$cont=$cont+1;
}
return 
$Arr;
}
$resulLeerCrearArr('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