PHP:¿Cómo puedo hacer una consulta a un TXT?

De Foros del Web

Con la siguiente guía y algoritmo

============

Muchos de nosotros tenemos sistemas que se ejecutan en D.O.S. como el FOXPRO por ejemplo y los cuales nos pueden exportar una tabla a un formato TXT y nosotros queremos hacer consultas desde nuestra WEB a éste archivo (txt).

Bien les diré que si es posible hacer la consulta de la siguiente manera.

1. Tenemos nuestro archivo de texto por ejemplo que lo llamaremos data.txt con las siguientes columnas:

CODIGO : (03 caracteres)

FECHA : (10 carateres)

CLIENTE : (25 caracteres)

data.txt

Cita:

de la siguiente manera 
 
xxx xx/xx/xxxx xxxxxxxxxxxxxxxxxxxxxxxxx
 
algunos datos de ejemplo :
 
254 12/10/2005 Juan Casqui Rios 
 
124 01/10/2005 Marco Villanes Soza 
 
144 05/05/2005 Luciana Marquez Castillo 
 
235 17/11/2005 Jose Santillan Vera 
 
014 16/02/2005 Simon Laurente Saenz 
 
 
(mantener siempre la estructura)

Ahora nuestro archivo html

pguno.html

Código PHP:

<HTML>
<HEAD>
<TITLE> Consulta </TITLE>
</HEAD>
<BODY>
    <FORM METHOD=POST ACTION="pgdos.php">
        CODIGO:<br>
        <INPUT TYPE="text" NAME="codigo" size="6" maxlength="3"> <br>
        <INPUT TYPE="submit" value="Enviar" name="Enviar">    
    </FORM>
</BODY>
</HTML>  

ahora pgdos.php

Código PHP:

<?php
$i=0; // variable Inicial para comprobar si se encontró algun valor
//Si no está vacio  y si la  variable  existe
if((!empty($_POST['codigo']))|| isset($_POST['codigo'])){
// abriendo el archivo de texto que se encuentra en el mismo directorio 
//que los archivos html  y php
$file = fopen ("data.txt", "r");
//Para el indice de mi array
$v=0;
//recorrido del archivo  TXT
while (!feof($file)) {    
    // consideramos linea por linea
    $linea = fgets($file,41);
    //linea por linea enviamos a un array
    $cadena[$v]=$linea;
    //contador incremental
    $v++;    
}
//obtenido los datos del archivo cerramos el archivo
fclose ($file); 
// recorremos nuestro array  y trabajarlo con nuestro algoritmo
foreach($cadena as $pasar)
{
    // comparamos si el codigo ingresado en el TEXTBOX
    //coincide con alguno que tenemos en nuestro TXT
    if($_POST['codigo']==substr($pasar,0,3))
        {
        // si es asi mostramos los datos que corresponden
            echo "<br>";
            echo "CODIGO  :".substr($pasar,0,3);
            echo "<br>";
            echo "FECHA : ".substr($pasar,4,10);
            echo "<br>";
            echo "CLIENTE : ".substr($pasar,15,25);
            echo "<br>";
            // indica que encontró algo
            $i=1;
        }
}
}
// Si no se encontró nada  simplemente mostramos este texto
if($i=='0')
{
    echo "Su Nro de CODIGO  no fué encontrado ....";
    echo "<br> Intente nuevamente ";
    echo '<A HREF="pguno.html">Anterior</A>';
}
?> 

Los tres archivos (txt,html,php) deberán estar en el mismo directorio.


--atak 27 Oct 2005

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales