Foros del Web » Programando para Internet » PHP »

Problema con un Script

Estas en el tema de Problema con un Script en el foro de PHP en Foros del Web. Hola buenas tardes, Tengo un problema con un Script que cree, su función es que lea un archivo .txt y me separe por cada línea ...
  #1 (permalink)  
Antiguo 16/07/2007, 12:18
 
Fecha de Ingreso: abril-2007
Mensajes: 101
Antigüedad: 17 años
Puntos: 0
Exclamación Problema con un Script

Hola buenas tardes,

Tengo un problema con un Script que cree, su función es que lea un archivo .txt y me separe por cada línea y me imprima los elementos que están allí en el archivo, si al final de la lectura, quedaron elementos pertenecientes a una línea incompleta, debería almacenarlo y concatenarlo a la siguiente lectura...

Realmente no tengo idea de que le esta pasando, les copio el código que funciona perfectamente y el que no, para que le echen un ojo y me ayuden cualquier error que observen...

Código que funciona:
Código PHP:
    set_time_limit(1000);
    
$fp fopen($archivo,'r');
    
$contenido '';
    
$aux '';                    
    
$contenido .= fread($fp1024*1024*2);
    
$arreglo explode("\n"$contenido);
    
$lineas count($arreglo);
    for(
$i=0$i<$lineas$i++)
    {
        if (
$i == $lineas-1)
        {
            unset(
$aux);
            
$aux $arreglo[$i];
        }
        else
        {            
            echo 
"Línea ".$i."<br>";
            
$elementos split("{"$arreglo[$i]);
            
$cantidad count($elementos);
            for(
$j=0$j<$cantidad$j++)
                echo 
"Elemento ".$j."= ".trim($elementos[$j])."<br>";
            echo 
"Fin de línea ".$i."<br><br>";
        }
    }
    unset(
$contenido);
    
$contenido $aux;
                
    
$contenido .=fread($fp1024*1024*2);
    
$arreglo explode("\n"$contenido);
    
$lineas count($arreglo);
    for(
$i=0$i<$lineas$i++)
    {
        
$elementos split("{",$arreglo[$i]);
        
$cantidad count($elementos);
        echo 
"Linea ".$i."<br>";
        for(
$j=0$j<$cantidad$j++)
            echo 
"Elemento ".$j."= ".trim($elementos[$j])."<br>";
        echo 
"Fin de línea ".$i."<br><br>";
    } 
Como se pueden dar cuenta, ese código es ineficiente porque repite lineas de código... pero si introduzco las lineas que deberían repetirse dentro de un bucle, el Script no funciona... Se cuelga el proceso (como si el bucle nunca terminara ?????? es un for...) y me toca cerrar la página... Aquí les copio el código:

Código PHP:
set_time_limit(1000);
$fp fopen($archivo,'r');
$contenido '';
$aux '';
for(
$h=0$h<2$h++)
{                    
    
$contenido .= fread($fp1024*1024*2);
    
$arreglo explode("\n"$contenido);
    
$lineas count($arreglo);
    for(
$i=0$i<$lineas$i++)
    {
        if (
$i == $lineas-1)
        {
            unset(
$aux);
            
$aux $arreglo[$i];
        }
        else
        {
            echo 
"Línea ".$i."<br>";
            
$elementos split("{"$arreglo[$i]);
            
$cantidad count($elementos);
            for(
$j=0$j<$cantidad$j++)
                echo 
"Elemento ".$j."= ".trim($elementos[$j])."<br>";
            echo 
"Fin de línea ".$i."<br><br>";
        }
    }
    unset(
$contenido);
    
$contenido $aux;

Muchas gracias de antemano,

Nau
  #2 (permalink)  
Antiguo 16/07/2007, 12:32
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 16 años, 9 meses
Puntos: 4
Re: Problema con un Script

No creo que halla qu reinventar el agua tibia para hacer lo que quieres: es decir


Código PHP:
$archivo file('archivo.txt');
for(
$i=0;$i<count($archivo);$i++)
{
    echo 
$archivo[$i]; // cambia esto por lo que necesites imprimir

  #3 (permalink)  
Antiguo 16/07/2007, 12:37
 
Fecha de Ingreso: abril-2007
Mensajes: 101
Antigüedad: 17 años
Puntos: 0
Re: Problema con un Script

El "pequeño" problema es que el archivo pesa 400Mb y realmente necesito imprimirlo para saber si trabaja bien y saber que cosas de ese archivo debo tomar para saber que va hacia una BD... solo es de prueba pero necesito que la navegación por el archivo funcione al 100%...
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 17:03.