Tema : Manejo de archivos de texto con PHP
Pregunta : ¿Cómo puedo hacer una consulta a un TXT?
Respuesta: 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.
Eso es todo amigos espero que les sirva de algo.
Cualquier sugerencia, critica, etc. espero su mensaje.
Salu2 a to2