Foros del Web » Programando para Internet » PHP »

Leer archivo de texto

Estas en el tema de Leer archivo de texto en el foro de PHP en Foros del Web. Hola a todos tengo un archivo de texto en el que guardo varios datos, el problema que tengo es para leerlos. El archivo se guarda ...
  #1 (permalink)  
Antiguo 01/10/2009, 21:10
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Leer archivo de texto

Hola a todos tengo un archivo de texto en el que guardo varios datos, el problema que tengo es para leerlos.

El archivo se guarda de la siguiente forma (con salto de linea):

ds
sdf
sdf
sdf

Para leerlo tengo lo siguiente:
<?

$fp = fopen("../config/config.txt", "r");

flock($fp, 1);

if (!$fp)
{
echo "<p><strong>No hay órdenes pendientes."
."Por favor prueba de nuevo más tarde.</strong></p></body></html>";
exit;

}

while (!feof($fp))
{
$order= fgets($fp, 100);
// echo $order."<br>";
$datos=split(";", $order);
echo $datos[0];
echo $datos[1];
}
flock($fp, 3);
/*
echo "La posición final del archivo indicador es ".(ftell($fp));
echo "<br>";
rewind($fp);
echo "Después de rewind, la posición es ".(ftell($fp));
echo "<br>";
*/
fclose($fp);
?>

Con eso puedo leer el archivo y verlo en el explorador pero lo muestra asi:
ds sdf sdf sdf
y quiero verlo hacia abajo, tal a como esta guardado.

Ahora, tambien necesito asignar cada valor a una variable distinta como lo puedo hacer????

Pense que esto serviria echo $datos[0];
echo $datos[1];

Pero el unico que imprime algo es $datos[0], el otro no.

Gracias
  #2 (permalink)  
Antiguo 01/10/2009, 21:37
Avatar de kike00  
Fecha de Ingreso: febrero-2005
Ubicación: El Salvador
Mensajes: 180
Antigüedad: 19 años, 2 meses
Puntos: 7
Respuesta: Leer archivo de texto

Espero esto te sirva.
Código php:
Ver original
  1. <?php
  2.     $nombre_archivo = "archivo.txt";
  3.     if(file_exists($nombre_archivo)){
  4.         $archivo = fopen($nombre_archivo,"r");
  5.         while(!feof($archivo)){
  6.             $linea = fgets($archivo);
  7.             $arreglo[] = $linea; //guardar linea en arreglo
  8.             echo $linea."<br />"; //mostrar linea
  9.         }
  10.         fclose($archivo);
  11.         print_r($arreglo); //imprimir el arreglo
  12.     }else{
  13.         echo "El archivo ".$nombre_archivo. " no existe.";
  14.     }
  15.    
  16. ?>

la funcion fgets() te lee desde el principio del archivo hasta que encuentra el final de linea, asi que lo que haces es solo mostrar lo que ha sacado y agregar la etiqueta html de salto de linea. Y para poner lo que has sacado de cada linea a una variable distinta no vas a poder, tiene que ser con un arreglo (algo asi como lo pusiste) solo que con la diferencia que toda la linea la metes en una posicion del arreglo.

Y respodiendo a algo sobre por que no te muestra el $data[1]. no te muestra nada porque la posicion 1 del arreglo $data no existe o no contiene nada, esto es porque los creaste con la funcion Split() que lo que hace es "partir" una cadena y devolver un arreglo con las partes de la cadena, basandose en el "patron" que hayas indicado, que para tu caso fue ";" si no encuentra ese caracter entonces toda la cadena la meterá en la primera posición del arreglo.

Saludos.

Última edición por kike00; 01/10/2009 a las 21:53
  #3 (permalink)  
Antiguo 03/10/2009, 11:30
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Leer archivo de texto

Hola kike00 gracias por tu ayuda me ha servido y he podido leer el archivo inclusive con el arreglo y se muestra bien en pantalla lo que no he podido es agregar esos datos a una variable, he tratado asi:

$user=$datos[0];
$user=&$datos[0];

Pero no me asigna nada y lo necesito
  #4 (permalink)  
Antiguo 03/10/2009, 11:33
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Leer archivo de texto

Puedes hacer uso de la función file(). Esta te devuelve todo el contenido en un arreglo, una casilla para cada línea. Luego recorres el arreglo y asignas cada linea a otro arreglo.

Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
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 05:56.