Foros del Web » Programando para Internet » PHP »

Archivo de Texto y su Uso en PHP

Estas en el tema de Archivo de Texto y su Uso en PHP en el foro de PHP en Foros del Web. Hola, buenas tardes... Tengo una duda, con respecto a que utilizar para hacer funcionar lo siguiente: Si tengo un archivo de Texto simple (archivo.txt), en ...
  #1 (permalink)  
Antiguo 11/06/2009, 15:44
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Sonrisa Archivo de Texto y su Uso en PHP

Hola, buenas tardes...

Tengo una duda, con respecto a que utilizar para hacer funcionar lo siguiente:

Si tengo un archivo de Texto simple (archivo.txt), en el cual tengo información como la siguiente:

Nombre: Middrel
Ingreso: 05/06/2009
Baja:
Sueldo Bruto: 12,000
Vacaciones: 2,500
ISR: 890
Neto: 13,610

Todo en ese orden, hacia abajo.

Ahora, quiero leerlo desde una página web, utilizando PHP. Supongo que tengo que abrir el archivo, pero ¿como hago para colocar cada cadena de caracteres de este archivo, por ejemplo, Middrel, en cierta posición de la página? ¿Es necesario leer con alguna función cadena por cadena?. En resumen, estos datos, como ya habrán notado, serán utilizados para un recibo electrónico visto por el usuario desde una intranet.

Les agradezco su atención. Saludos.
  #2 (permalink)  
Antiguo 11/06/2009, 19:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Archivo de Texto y su Uso en PHP

Para leer el archivo puedes usar file_get_contents()

Luego separas cada linea con explode("\n", $archivo);

Ahora, veo un problema, lo mas recomendable es que si tienes varios "registros" cada uno ocupe solamente una linea en el archivo, separando cada elemento con algun caracter especifico, ejemplo:

Cita:
Nombre:Aqui el nombre 1|Fecha:Aqui la fecha|Baja:|Sueldo:Aqui la cantidad
Nombre:Aqui el nombre 2|Fecha:Aqui la fecha|Baja:|Sueldo:Aqui la cantidad
Nombre:Aqui el nombre 3|Fecha:Aqui la fecha|Baja:|Sueldo:Aqui la cantidad
Si los titulos se van a repetir, entonces no tiene caso incluirlos en cada registro:

Cita:
Aqui el nombre 1|Aqui fecha ingreso|Aqui fecha baja|Aqui el sueldo
Aqui el nombre 2|Aqui fecha ingreso|Aqui fecha baja|Aqui el sueldo
Aqui el nombre 3|Aqui fecha ingreso|Aqui fecha baja|Aqui el sueldo
En este punto, haces un foreach para cada linea obtenida del explode anterior:
Código php:
Ver original
  1. foreach($lineas as $linea) {
  2.     $datos = explode('|', $linea);
  3.     // Mostrar cada dato de acuerdo al orden en que aparecen en los registros:
  4.     echo 'Nombre: ' . $datos[0];
  5.     echo 'Sueldo: ' . $datos[3];
  6. }

Si tienes dudas, revisa el manual de PHP para las funciones que te recomiendo, el enlace esta incluido arriba.

Si lo que necesitas no tiene nada que ver con esto, por favor trata de explicar mejor tu problema.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/06/2009, 20:11
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Archivo de Texto y su Uso en PHP

Cita:
Para leer el archivo puedes usar file_get_contents()

Luego separas cada linea con explode("\n", $archivo);
:P O podrias usar file() que hace lo mismo que usar esas 2 funciones. :D (no me golpees Triby)
  #4 (permalink)  
Antiguo 11/06/2009, 20:11
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Archivo de Texto y su Uso en PHP

Middrel:
Tambien puedes utilizar la funcion file(),
esta crea un array del archivo donde
$archivo[0] = Nombre: Middrel
y explode(" " , $archivo[0]);
lo separa en nombre y Middrel
Puedes tambien utilizar
substr() para ampliar la forma de
manipular los caracteres del array.
Con esa informacion puedes manipular
de mil maneras el archivo.
Debes estructurar bien las entradas al archivo
para poder sacar la informacion
de forma util y ordenada.
Saludos
Franco
  #5 (permalink)  
Antiguo 11/06/2009, 20:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Archivo de Texto y su Uso en PHP

Cita:
Iniciado por Ronruby
:P O podrias usar file() que hace lo mismo que usar esas 2 funciones. :D (no me golpees Triby)
Cierto, con file() se obtiene el contenido del archivo directamente en una matriz, el unico inconveniente podria ser que mantiene los saltos de linea en cada elemento. El uso de uno u otro depende de las preferencias del usuario.

Yo prefiero: $lineas = explode("\n", file_get_contents('archivo.txt')); (sin golpes )
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 11/06/2009, 20:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Archivo de Texto y su Uso en PHP

Cita:
Note: Each line in the resulting array will include the line ending, unless FILE_IGNORE_NEW_LINES is used, so you still need to use rtrim() if you do not want the line ending present.
*escudo*
  #7 (permalink)  
Antiguo 11/06/2009, 21:14
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Archivo de Texto y su Uso en PHP

WTF!!! prestame el escudo, porque ya se quien es el que va a salir golpeado.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 11/06/2009, 22:18
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Archivo de Texto y su Uso en PHP

Estaba viendo el juego de Basketball entre Lakers y Orlando, exactamente cuando Gascol anoto la canasta 96 a 21 segundos de que acabe el juego cuando me acordé que postée una pregunta y decidí hechar un ojo a ver si alguien había dado su punto de vista

Triby, es exactamente como lo describes. Lo que acabas de responder es como estaba buscándolo y te agradezco mucho tu respuesta, me sacó de muchas dudas, estaba investigando en la página de PHP y más o menos tenía la idea pero no encontraba el "dato" exacto. Gracias me abriste los ojos ante esto

Les agradezco todos sus respuestas y voy a seguir sus consejos, Triby, Ronruby, Franco gracias por la ayuda y lo voy a intentar como me dicen.

Por cierto Lakers 99, Orlando 91, ¡Viva Lakers!
  #9 (permalink)  
Antiguo 11/06/2009, 23:39
 
Fecha de Ingreso: junio-2009
Mensajes: 231
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Archivo de Texto y su Uso en PHP

Muy buenas respuestas...

ni hablar si mas adelante puedes usar bases de datos. Si necesita ayuda por aqui estare

Saludos
  #10 (permalink)  
Antiguo 12/06/2009, 15:56
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Archivo de Texto y su Uso en PHP

¡Muchas gracias Autista! De hecho, la idea era conectarme directamente a una base de datos de DBase 7. En la empresa donde trabajo, tenemos un sistema de nómina propio, diseñado alla por el año 2000 - más o menos - en el que el desarrollo fue hecho en C# y con una base de datos en DB7 (actualmente se está actualizando a MySQL o SQL Server).

Lo que quieren vislumbrar en una intranet, son recibos electrónicos de los empleados de nuestro clientes que usan el sistema, esto para evitar gastos de envio de recibos a los distintos estados.

La idea que se me ocurrió, fue de conectarme directamente a la base de datos mediante PHP y mostrar en una pantalla de HTML (como una subpágina) el recibo del empleado. El podrá entrar con una contraseña y nombre de usuario y ver sólo su recibo. Sin embargo, por medidas de seguridad se me ocurrió que se sacará un layout del sistema (con un generador de reportes que tiene incluido), en forma de texto, guardarlo en una carpeta distinta a la de las bd y leerlo desde PHP.

¿Crees que me estoy complicando de más y sería más fácil conectarme directamente a la bd o está bien planteado lo que sugiero?

Gracias por todos sus comentarios.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:56.