Tema: leyendo txt
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2009, 17:24
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
leyendo txt

hola, estaba haciendo una rutina para subir y leer un txt generado de un software con la idea de poder guardarlos en una bd de una web....

La accion que hago es subir el txt, tomar los registros con mi rutina y guardarlos inmediatamente, hasta ahora todo bien.... lo que quisiera es que me den alguna idea para restringir de que el usuario suba cualquier archivo txt con diferentes contenidos, tan solo el que genera el software. Asi evitar que se me malogre los registros.

Este es el txt que se genera:

Código:
1,JUAN PEREZ,1,1965-04-27,09083462,javiermorey @hotmail.com,562-1456,9924-2268,AMSTERDAM 276 ,2009-01-26,2009-02-05,000001
1,VANNY LISSET,VASQUEZ VARGAS,1,1982-03-12,DNI.08070605,[email protected],36985214,,AV SAN BORJA,2009-02-03,2009-02-05,000005
1,SARA JULIA,RIVERA CASTRO,1,1970-08-13,DNI. 23654414,[email protected],45667-554,,AV. SANTA ROSA # 3252009-02-03,2009-02-05,2009-02-06,000006

Bueno y esta es la rutina que hago, pero que condicion puedo poner antes de guardar registros?
Código PHP:
<?php
//subo el archivo temporalmente
$fisico $_FILES["archivo"]["tmp_name"];
$archivo $fisico;

if(
$_FILES["archivo"]["type"]=="text/plain"){
    
$fp fopen($archivo,'r');
    
$cadena fread($fpfilesize($archivo));
    
    
$arreglo explode("\n"$cadena);


    
$resultado = Array();
    foreach(
$arreglo as $linea)
    {
        
$partes explode(","$linea);

        
$estado $partes[0];
        
$nombre $partes[1];
        
$apellido $partes[2];
        
$flagedad $partes[3];
        
$nacimiento $partes[4];
        
$dni $partes[5];
        
$email $partes[6];
        
$telefono $partes[7];
        
$telefono2 $partes[8];
        
$direccion $partes[9];
        
$registro $partes[10];
        
$modificacion $partes[11];
        
$identificador $partes[12];
        
        
$sql="call registra_paciente(1,'$nombre','$apellido','$flagedad','$nacimiento','$dni','$email','$telefono','$telefono2','$direccion','$registro','$modificacion',$identificador)";
        echo 
$sql."<br>";
                 
//de ahi viene el query para guardar
    //cierro el foreach
    
}
 
//cierro el if y pongo la seguna condicion
 
}else{
      echo 
"no es txt";
 }
?>
Como dato: como ven el array del txt siempre sera de 13 items, quizas pueda preguntar si es que estan completos esos 13, pero el problema es que el software genera algunos campos NULL, quizas podria preguntar sobre la cantidad de comas que hay en el txt por fila y preguntar si eso es igual a 11 pero como podria extraer las comas por fila.... bueno si es que esa es la unica solucion, espero me ayuden... byes
__________________
Quitenme la vida pero no la bebida.