Foros del Web » Programando para Internet » PHP »

Ayuda para buscar dentro de un txt a traves de un array

Estas en el tema de Ayuda para buscar dentro de un txt a traves de un array en el foro de PHP en Foros del Web. Tengo un problema, tengo un archivo txt en donde los datos a buscar estan cada uno en un renglon distinto, sin embargo cuando los paso ...
  #1 (permalink)  
Antiguo 05/06/2007, 17:15
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años
Puntos: 34
Pregunta Ayuda para buscar dentro de un txt a traves de un array

Tengo un problema, tengo un archivo txt en donde los datos a buscar estan cada uno en un renglon distinto, sin embargo cuando los paso a un array y realizo una búqueda algo anda mal...

Me pueden ayudar, de antemano aclaro que solo se PHP de oído, pero no se que puede ser porque cuando traigo los datos con explode de un txt separado por , va todo bien, pero ahora no...

Código:
<?php
$i=0; 
$file = fopen ("buscar.txt", "r");
$v=0;
while (!feof($file)) {    
    $linea = fgets($file);
    $cadena[$v]=$linea;
	$v++;    
    
}
fclose ($file); 
$bus="hola";
foreach($cadena as $pasar)
{
    if($bus==$pasar)
        {
            echo "Se encontro: ".$pasar;
            $i=1;
        }
}
if($i=='0')
{
    echo "No se encontró nada.";
	}
?>
Si uso la funcion substr y le digo el largo del texto que busco, entonces funciona, pero no me sirve...

El archivo buscar.txt contiene

Código:
hola
como
estan
todos
  #2 (permalink)  
Antiguo 06/06/2007, 09:18
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Re: Ayuda para buscar dentro de un txt a traves de un array

Tu problema se debe a la forma en que haces tu condicional:
Código PHP:
if( $bus == $pasar 
Está bién sólo que se te fue un pequeñisimo detalle, y es, que cuando se lee el archivo también está leyendo que tiene un salto de línea al final de cada una de estas líneas así que tu condicional la deberías de cambiar a:
Código PHP:
if( $bus == $pasar || $bus."\r\n" == $pasar 
Eso si es que vas a buscar por más de una palabra por línea, de no ser así, es decir, sí en tu txt sólo tienes una palabra por línea entonces sólo tienes que poner el condicional de esta manera:
Código PHP:
if( $bus."\r\n" == $pasar 
Espero haberme dado a entender y que esto te haya servido por lo menos para darte una idea. Suerte
  #3 (permalink)  
Antiguo 06/06/2007, 09:22
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Ayuda para buscar dentro de un txt a traves de un array

ojo con linux q el fin de linea es solo con \n \r\n es formato windows

estaria mejor usar una expresion regular

saludos
__________________
Degiovanni Emilio
developtus.com
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:54.