Foros del Web » Programando para Internet » PHP »

Búsqueda en txt separado por ;

Estas en el tema de Búsqueda en txt separado por ; en el foro de PHP en Foros del Web. Hola a todos! Por medio de un formulario realizo una búsqueda Código HTML: <form id= "form1" name= "form1" method= "post" action= "buscar.php" > Código: <input ...
  #1 (permalink)  
Antiguo 18/11/2011, 06:54
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Búsqueda en txt separado por ;

Hola a todos!

Por medio de un formulario realizo una búsqueda

Código HTML:
<form id="form1" name="form1" method="post" action="buscar.php">
  
  Código:<input type="text" name="cod" id="cod" />
  
  <input type="submit" name="button" id="button" value="Buscar" />
  
</form> 

Se lee un txt para comparar datos y que me devuelva resultados según el código ingresado

Código PHP:
if((!empty($_POST["cod"]))|| isset($_POST["cod"])){
         
$file fopen ("archivo.txt""r");
         
$linea trim(fgets($file));
         
$encontrado = ($linea == $_POST["cod"]);
          while (!
feof($file) && !$encontrado) {
               
$linea trim(fgets($file));
               
$encontrado = ($linea==$_POST["cod"]);}
           
//end while
              
fclose ($file);
}
       if (!
$encontrado) {
              echo 
'Código Inexistente';
       } else {
             echo 
'Código: '.$linea;
      } 
Esto me sirve cuando el txt viene con el siguiente formato:

100
200
300
400
...

Pero ahora necesito leer un txt separado por ; el formato sería:
codigo; nombre; mail; teléfono; ciudad

Creo que para esto se utiliza la función explode, pero no se como incorporarla a lo que ya armé, alguien me puede ayudar?

Gracias, gracias!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 18/11/2011, 07:27
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Búsqueda en txt separado por ;

La forma más practica de buscar una palabra en un texto es a traves de una expresion regular con el preg_match() pero si queres utilizar el explode() podes hacerlo utilizando antes el método file_get_contents() asi:

Código PHP:
Ver original
  1. $contenido = file_get_contents('ruta_archivo');

para obtener el contenido del txt en forma de string y lo guardas en una variable por ejemplo $contenido y despues si queres usar el explode() escribis:

Código PHP:
Ver original
  1. $arr = explode(';', $contenido);

y en $arr vas a tener un vector que cada posicion es la linea entera hasta que encuentra un ; donde ahi salta a la otra linea y te la guarda en otra posicion del vector y asi sucesivamente.

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 18/11/2011, 07:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Búsqueda en txt separado por ;

Lo puse de esta forma, pero sale siempre "código inexistente"

Código PHP:
<?PHP 
$i
=0

if((!empty(
$_POST['cod']))|| isset($_POST['cod'])){

$file fopen ("archiweb.txt""r");
$v=0;

while (!
feof($file)) {    
    
    
$linea fgets($file);    
    
$cadena[$v]=$linea;    
    
$v++;    
}

fclose ($file); 

foreach(
$cadena as $pasar)
{
    
    if(
$_POST['cod']==substr($pasar,0,4))
        {
             echo 
"CODIGO  :".substr($pasar,0,4);            
             
$i=1;
        }
}
}

if(
$i=='0')
{
    echo 
"código inexistente";    
}
?>
la idea es implementar el explode o algo que me separe los datos que están separados por ;
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 18/11/2011, 08:05
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Búsqueda en txt separado por ;

Probaste como te lo explique yo?, utiliza el file_get_contents(), te va a resultar mas facil, porque el contenido te lo vuelca en una sola variable.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 18/11/2011, 08:21
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Búsqueda en txt separado por ;

Código PHP:
<?PHP
$url 
'archivo.txt';
$body 'FDW=programacion&PHP=f18';
$options = array('method' => 'POST''content' => $body);
$context stream_context_create(array('http' => $options));
$page file_get_contents($urlfalse$context);
//echo $page;

$campos = array('código''nombre''domicilio''telefono');

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

 }

?>
me sale Warning: Invalid argument supplied for foreach()
__________________
Saludos!!!
Maru.-
  #6 (permalink)  
Antiguo 18/11/2011, 08:25
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Búsqueda en txt separado por ;

Eso es porque cuando haces el file_get_contents() no te devuelve un array, te devuelve un string gigante con el contenido, tenes que aplicarle el explode() antes de hacer el foreach, para que si te lo transforme en un array y asi poder recorrerlo.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 19/11/2011, 06:53
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Búsqueda en txt separado por ;

Mil gracias linuxzero!!!
voy a intentar con eso y cualquier duda volveré a postear.
Genial tu ayuda! :)
__________________
Saludos!!!
Maru.-
  #8 (permalink)  
Antiguo 19/11/2011, 09:07
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Búsqueda en txt separado por ;

de nada campeon. cualquier cosa avisame ;)
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com

Etiquetas: formulario, separado, 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 07:55.