Foros del Web » Programando para Internet » PHP »

Buscar dato dentro de archivo de texto

Estas en el tema de Buscar dato dentro de archivo de texto en el foro de PHP en Foros del Web. Hola amigos Les cuento que estoy realizando un buscador tipo directorio telefonico para la empresa en donde trabajo, el buscador realiza una busqueda dentro de ...
  #1 (permalink)  
Antiguo 20/06/2008, 11:44
 
Fecha de Ingreso: julio-2007
Mensajes: 31
Antigüedad: 16 años, 9 meses
Puntos: 0
Buscar dato dentro de archivo de texto

Hola amigos

Les cuento que estoy realizando un buscador tipo directorio telefonico para la empresa en donde trabajo, el buscador realiza una busqueda dentro de un archivo de texto separados por comas con este formato


Código:
IDEMPRESA; FERNANDO NICOLAS [email protected]=INTERNO= CODIGOSECTOR; [email protected]; Perez, Fernado Nicolas; LEGAJO;TELEFONO; CODIGOSECTOR;
el codigo php del buscador es el siguiente:

Código PHP:
 <?php

# Flag que se recibe desde el form para iniciar la busqueda

if (isset ($_GET["buscar"])) # verifico si el flag buscar esta definido

    if (
$_GET["idpadron"] == NULL)
    {
# si no se ingresa dato a buscar
    
    
$Resultado "&nbsp;&nbsp;<img src='img/bullet_red.gif' width='11' height='13'>&nbsp;&nbsp;&nbsp;<span class='textoerror'>  Atenci&oacute;n: Debe ingresar dato a buscar</span>"."<br><br>"
    }
    else 
    {
# si se ingreso dato a buscar
    
    
$Resultado "&nbsp;&nbsp;<img src='img/bullet.gif' width='11' height='13'>&nbsp;&nbsp;&nbsp;<span class='textopag'>  Resultado de la busqueda:</span>"."<br><br>";
    }
    
# Recibo el patron de busqueda y lo convierto a mayusculas 

@    $idBuscado  strtoupper($_GET ["idpadron"]);
    
$idBuscado strtr($idBuscado"ñÜÖÁÉÍÓÚüöáéíóú""ÑUOAEIOUUOAEIOU");

# Valor de empresa seleccionado en la lista de valores del formulario (%,PM,BA,IF,IA,FA,FU)

@    $idEmpresa $_GET ["empresa"];
    
    if (
$idEmpresa == "%"){
          
$Todas 1;  # busca en todas las empresa
        
}
    else{
          
$Todas 0;  # busca en la empresa seleccionada
        
}

echo 
$Resultado# Muestra resultado o da mensaje de error en pantalla

# Abre el archivo cvs ubicado en /home/www/sistemas/nu0_temail_te.txt

$archivo = @ fopen("nu0_temail_te.txt","r") or
    die (
"<span class='textoerror'>Error: La apertura de archivo &quot;nu0_temail_te.txt&quot; ha fallado, informe al administrador del sistema al Int 3741/43.</span>");

# fgetcsv lee archivo csv / 250 es el tamaño max de caracteres x linea / ";" separador /

    
while (($data fgetcsv($archivo250";")) !== FALSE)
    { 
    
$posicion = @ strpos ($data[1], $idBuscado);
    
       if (
$posicion === FALSE){
       
$NoFound 0;
       }
       else if (
$posicion !== FALSE)
           {
        
$NoFound 1;
        
        if (
$Todas == # busca en la empresa seleccionada
            
{
              
$posicion = @ strpos ($data[0], $idEmpresa);
              if (
$posicion === FALSE)
              {
#        echo "No encontré la empresa";
          
}
          elseif (
$posicion == 0)
          { 
#        echo "Se encontro la persona y Tambien se encontró la empresa";
        
        
echo "<table width='100%' border='1' cellspacing='1' cellpadding='1' bordercolor='#FFFFFF' bgcolor='#E1EBF7'>";
        echo 
"<tr>
            <td bordercolor='#E1EBF7' bgcolor='#E1EBF7' width='5%' align='absmiddle'class='texto_normal'> $data[4] </td>
            <td bordercolor='#FFFFFF' bgcolor='#FFFFFF' width='28%' align='absmiddle'class='texto_gris'> $data[3] </td>
            <td bordercolor='#E1EBF7' bgcolor='#E1EBF7' width='14%' align='absmiddle' class='texto_gris'> $data[7] </td>
            <td bordercolor='#FFFFFF' bgcolor='#FFFFFF' width='12%' align='absmiddle' class='textoresaltado'>&nbsp;<img src='img/icon_tel.gif' align='absmiddle'>&nbsp;$data[5]</td>
            <td bordercolor='#E1EBF7' bgcolor='#E1EBF7' width='13%' align='absmiddle'class='texto_gris'><img src='img/icon_tel.gif' align='absmiddle'> $data[6] </td>
            <td bordercolor='#E1EBF7' bgcolor='#FFFFFF' width='28%'align='absmiddle'>&nbsp;<img src='img/icono_mail.gif' align='absmiddle'>&nbsp;<a href='mailto:$data[2]' class='mails_link'>$data[2]</a></td>
            </tr>"
;
        echo 
"</table>";
        
$encontrado 1;
            }
        }
        else
        {
          echo 
"<table width='100%' border='1' cellspacing='1' cellpadding='1' bordercolor='#FFFFFF' bgcolor='#E1EBF7'>";
        echo 
"<tr>
            <td bordercolor='#E1EBF7' bgcolor='#E1EBF7' width='5%' align='absmiddle'class='texto_normal'> $data[4] </td>
            <td bordercolor='#FFFFFF' bgcolor='#FFFFFF' width='28%' align='absmiddle' class='texto_gris'> $data[3] </td>
            <td bordercolor='#E1EBF7' bgcolor='#E1EBF7' width='14%'align='absmiddle' class='texto_gris'> $data[7]</td>
            <td bordercolor='#FFFFFF' bgcolor='#FFFFFF' width='12%'align='absmiddle' class='textoresaltado'>&nbsp;<img src='img/icon_tel.gif' align='absmiddle'>&nbsp;$data[5]</td>
            <td bordercolor='#E1EBF7' bgcolor='#E1EBF7' width='13%'align='absmiddle'class='texto_gris'><img src='img/icon_tel.gif' align='absmiddle'> $data[6] </td>
            <td bordercolor='#E1EBF7' bgcolor='#FFFFFF' width='27%'align='absmiddle'>&nbsp;<img src='img/icono_mail.gif' align='absmiddle'>&nbsp;<a href='mailto:$data[2]' class='mails_link'>$data[2]</a></td>
            </tr>"
;
        echo 
"</table>";
        
$encontrado 1;
       }
       }
    }

     
fclose($archivo);


     if (@
$encontrado == 0){
    echo 
"<table width='500' border='1' cellpadding='0' cellspacing='0' bordercolor='#8DB3E0' bgcolor='#E1EBF7' align='center'><tr>
<td colspan='2' bordercolor='#E1EBF7' class='textoresaltado'><img src='img/spacer5x8.png'width='5' height='8'></td></tr><tr>
<td width='67' bordercolor='#E1EBF7' class='textoresaltado'>                        <center><img src='img/warning.gif' width='32' height='32'>                       </center></td><td width='427' bordercolor='#E1EBF7' class='textoresaltado'><b>Atenci&oacute;n:</b> Su b&uacute;squeda: <b>"
.@$idBuscado."</b> - no produjo resultados<br><br>Aseg&uacute;rese de que la palabra este escrita correctamente.</td></tr>
<tr><td colspan='2' bordercolor='#E1EBF7' class='textoresaltado'><img src='img/spacer5x8.png' width='5' height='8'></td></tr></table>"
;
    }

# borro la variable resultado

unset ($Resultado);
}
?>
La pregunta es la siguiente: cuando tengo que buscar una persona que se llama por ej JOSE ALBERTO PEREZ. En el buscador debo colocar todo el nombre completo para que lo encuentre y no JOSE PEREZ el problema es que no todos conocen el segundo nombre de la persona, y si buscar PEREZ solo, muchas veces existen muchas personas con el mismo apellido. como puedo hacer para resolver eso? por lo demas funciona correctamente.

saludos.
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 20:50.