Foros del Web » Programando para Internet » PHP »

Lectura de archivo txt separado por comas

Estas en el tema de Lectura de archivo txt separado por comas en el foro de PHP en Foros del Web. He visto en una web un ejemplo para leer datos de un archivo txt, pero no funciona bien. Contenido del archivo 'miarchivo.txt': 1, Jorge, Pérez ...
  #1 (permalink)  
Antiguo 23/06/2010, 13:35
 
Fecha de Ingreso: marzo-2004
Mensajes: 74
Antigüedad: 20 años
Puntos: 0
Lectura de archivo txt separado por comas

He visto en una web un ejemplo para leer datos de un archivo txt, pero no funciona bien.

Contenido del archivo 'miarchivo.txt':
1, Jorge, Pérez Campos, informatico, 27, León
2, Pedro, Diez Santamarta, diseñador, 22, Salamanca
3, Luis, Ruiz Campos, dibujante, 27, Zamora

Éste es el código:

Código PHP:
<?php 
// archivo txt 
$filas=file('miarchivo.txt'); 
// iniciamos contador y la fila a cero 
$i=0
$numero_fila=0
// mientras exista una fila 
while($filas[$i]!=NULL){ 
// incremento contador de la fila 
$row $filas[$i+1]; 
// genero array con por medio del separador "," que es el que tiene el archivo txt 
$sql explode(",",$row); 
// incrementamos contador 
$i++; 
$numero_fila++; 
// imprimimos datos en pantalla 
echo 'Id: '.$row[0].'<br/>'
echo 
'Nombre: '.$row[1].'<br/>'
echo 
'Apellidos: '.$row[2].'<br/>'
echo 
'Profesión: '.$row[3].'<br/>'
echo 
'Edad: '.$row[4].'<br/>'
echo 
'Ciudad: '.$row[5].'<br/><br/>'
}
?>
Y el restultado que aparece en la pantalla es éste:

Id: 2
Nombre: ,
Apellidos:
Profesión: P
Edad: e
Ciudad: d

Id: 3
Nombre: ,
Apellidos:
Profesión: L
Edad: u
Ciudad: i

Id:
Nombre:
Apellidos:
Profesión:
Edad:
Ciudad:

¿Hay algo incorrecto? ¿Qué estoy haciendo mal?

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 23/06/2010, 13:53
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Lectura de archivo txt separado por comas

mucha complicación para algo tan simple de hacer con foreach
Código PHP:
Ver original
  1. <?php
  2. $filas=file('miarchivo.txt');
  3. foreach($filas as $value){
  4.     list($id, $nombre, $apellidos, $profesion, $edad, $ciudad) = explode(",", $value);
  5.     echo 'Id: '.$id.'<br/>';
  6.     echo 'Nombre: '.$nombre.'<br/>';
  7.     echo 'Apellidos: '.$apellidos.'<br/>';
  8.     echo 'Profesión: '.$profesion.'<br/>';
  9.     echo 'Edad: '.$edad.'<br/>';
  10.     echo 'Ciudad: '.$ciudad.'<br/><br/>';
  11. }
  12. ?>
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 23/06/2010, 14:07
 
Fecha de Ingreso: septiembre-2009
Mensajes: 68
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Lectura de archivo txt separado por comas

Otra manera...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $cardelimitador = ';';
  4. $carpeta = 'arxius/';
  5. $nomarxiu = 'arxiu.txt';
  6.  
  7. $oa = fopen($carpeta . $nomarxiu, 'r');
  8.  
  9. $c = 0;
  10. while($a = fgetcsv($oa, 1000, $cardelimitador)){
  11.     echo 'campo 1 ' . $a[0] . '<br>';
  12.     echo 'campo 2 ' . $a[1] . '<br>';
  13.     echo 'campo 3 ' . $a[2] . '<br>';
  14.     echo 'campo 4 ' . $a[3] . '<br>';
  15.     echo 'campo 5 ' . $a[4] . '<br>';
  16.     $c++;
  17. }
  18.  
  19. echo 'total registros: ' . $c;
  20. fclose($oa);
  21.  
  22. ?>
  #4 (permalink)  
Antiguo 24/06/2010, 03:47
 
Fecha de Ingreso: marzo-2004
Mensajes: 74
Antigüedad: 20 años
Puntos: 0
Respuesta: Lectura de archivo txt separado por comas

Perfecto, muchísimas gracias.
  #5 (permalink)  
Antiguo 24/06/2010, 08:30
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Lectura de archivo txt separado por comas

Tu codigo quedo reducido a cenizas:

Código PHP:

$filas
=file('miarchivo.txt');  
$i=0;  
while(
$filas[$i]!=NULL){  

$sql explode(",",$filas[$i]);  

for(
$j=0$j<count($sql); $j++){
echo 
$sql[0] ." ".$sql[$j].'<br/>';  
}

echo 
"<p />";
$i++;

O con un loop foreach:

Código PHP:

$filas
=file('miarchivo.txt');  
$i=0;  
while(
$filas[$i]!=NULL){  

$sql explode(",",$filas[$i]);  

foreach(
$sql as $v){
echo 
$sql[0] ." ".$v.'<br/>';  
}

echo 
"<p />";
$i++;



Mas reducido aun:

Código PHP:

$filas
=file('miarchivo.txt');  

foreach(
$filas as $v){
$datos=explode(",",$v);
foreach(
$datos as $dato){
echo 
$datos[0]." ".$dato."<br />";
}
echo 
"<p />";


Última edición por wiwi74; 24/06/2010 a las 08:58
  #6 (permalink)  
Antiguo 24/06/2010, 09:26
 
Fecha de Ingreso: septiembre-2009
Mensajes: 68
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Lectura de archivo txt separado por comas

Cita:
Iniciado por wiwi74 Ver Mensaje
Tu codigo quedo reducido a cenizas:

Código PHP:

$filas
=file('miarchivo.txt');  
$i=0;  
while(
$filas[$i]!=NULL){  

$sql explode(",",$filas[$i]);  

for(
$j=0$j<count($sql); $j++){
echo 
$sql[0] ." ".$sql[$j].'<br/>';  
}

echo 
"<p />";
$i++;

O con un loop foreach:

Código PHP:

$filas
=file('miarchivo.txt');  
$i=0;  
while(
$filas[$i]!=NULL){  

$sql explode(",",$filas[$i]);  

foreach(
$sql as $v){
echo 
$sql[0] ." ".$v.'<br/>';  
}

echo 
"<p />";
$i++;



Mas reducido aun:

Código PHP:

$filas
=file('miarchivo.txt');  

foreach(
$filas as $v){
$datos=explode(",",$v);
foreach(
$datos as $dato){
echo 
$datos[0]." ".$dato."<br />";
}
echo 
"<p />";


Pequeñisima modificacion para que muestre campos:

Código PHP:
Ver original
  1. $filas=file('miarchivo.txt');  
  2. $campos = array('id', 'nombre', 'apellido', 'profesion', 'edad', 'ciudad');
  3. $c = 0;
  4.  
  5. foreach($filas as $v){
  6.     $datos=explode(",",$v);
  7.     foreach($datos as $dato){
  8.         echo $campos[$c].": ".$dato."<br />";
  9.         $c++;
  10.     }
  11.     $c = 0;
  12.     echo "<p />";
  13. }
  #7 (permalink)  
Antiguo 19/06/2011, 00:28
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Lectura de archivo txt separado por comas

Hola, me estoy iniciando en el mundo de php y mi duda es ¿como puedo los datos rescatados del .txt llevarlos a una tabla de mysql???... desde ya les agradezco, saludos
  #8 (permalink)  
Antiguo 19/06/2011, 00:55
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Lectura de archivo txt separado por comas

No hubiera sido mejor abrir un nuevo tema para tu pregunta?
Igual en el foro hay muchísima información útil.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 19/06/2011, 01:45
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Lectura de archivo txt separado por comas

Quizas me interprete mal, mi inquietud es en relación al ejemplo expuesto en este posteo.
  #10 (permalink)  
Antiguo 19/06/2011, 01:52
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Lectura de archivo txt separado por comas

En este post se toma el tema de separar strings en un archivo de texto, me parece muy diferente a insertar registros a Mysql.
Busca en el foro y su Wiki, hay mucha información del uso de mysql.

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: comas, lectura, txt
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:28.