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.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
