jueves, 17 de octubre de 2013

Crear y escribir archivo de texto .txt con PHP

Buenos días!

Hoy traigo un tutorial bien sencillo pero muy útil a la vez. Se trata de crear un archivo (en este ejemplo .txt) en la ruta que especifiquemos a través de un .php.

Podemos añadir tantas líneas como queramos y es útil para almacenar información de las variables recibidas en caso de Debug o simplemente para guardar información escrita por el usuario.



A continuación muestro el código para crear nuestro archivo totalmente comentado. Para acceder al archivo tendrá que ser por Ftp o algún sistema de ficheros.
<?php
//Creamos el archivo datos.txt
//ponemos tipo 'a' para añadir lineas sin borrar
$file=fopen("datos.txt","a") or die("Problemas");
  //vamos añadiendo el contenido
  fputs($file,"primera linea");
  fputs($file,"\n");
  fputs($file,"segunda linea");
  fputs($file,"\n");
  fputs($file,"tercera linea");
  fclose($file);
  ?>
Y este será el resultado:
También podemos jugar un poco con el codigo:
<?php
//Creamos el archivo datos.txt
//ponemos tipo 'a' para añadir lineas sin borrar
$file=fopen("datos2.txt","a") or die("Problemas");
  //vamos añadiendo el lineas con bucle
  for($a=0;$a<20;$a++){
    //bucle para caracteres por linea
 for($b=0;$b<$a;$b++){
  $tx = $tx."-";
  }
 fputs($file,$tx);
 fputs($file,"\n");
  }

  fclose($file);
  ?>
Y el resultado de jugar es:

Muchas gracias a todos! Espero vuestro comentarios!!!

20 comentarios:

  1. pues lo he provado en el bloc de notas y no me funciona lo he pegado tal cual, un saludo

    ResponderEliminar
    Respuestas
    1. Pero que parte es la que no te funciona?
      Introduce un 'echo "hola"; ' en las lineas del .php y dime aver si se muestran.

      gracias

      Eliminar
    2. hola
      se puede hacer que el que envía último sea la primera linea
      y el que envía primero pase a la segunda linea ¿?

      los mismo que "a" pero a la inversa ¿?

      Eliminar
    3. si, simplemente gira la pantalla y arreglado!

      espero que te haya servido :P

      Eliminar
  2. Saben como puedo mostrar la hora almacenada en una base de datos y pasarla al txt.....m la muestra pero no como deberia ser...

    ResponderEliminar
    Respuestas
    1. <?php
      $fecha = date("d/m/Y"); //Asi se captura la fecha
      posterior se realiza el insert a la base de datos....

      $queryInsert= mysql_exec ($conexioBaseDatos,"INSERT INTO mi_tabla (fecha) VALUES('$fecha)") or die("Ins.Gestion: " . mysql_last_error($conexioBaseDatos));

      $querySelect= "SELECT fecha FROM mi_tabla;
      $rs = mysql_query($conexioBaseDatos, $querySelect);

      echo='$fecha';

      ?>

      Eliminar
  3. Me funciona perfecto, muchas gracias y les recomiendo a algunos estudiar un poco más de PHP es necesario hacerlo antes de ponerse a programar, gracias!

    ResponderEliminar
    Respuestas
    1. de ver dad???? jeje

      Eliminar
    2. Comentario tan estupido

      Eliminar
  4. Que tonto comentario Mariajose

    ResponderEliminar
  5. Tengo el servidor corriendo en linux, y me da un error: PHP Warning: fopen(datos.txt): failed to open stream: Inappropriate ioctl for device
    Ya corroboré que no es un permiso de escritura

    ResponderEliminar
  6. Gracias por todo, lo probare.

    Ahora necesito leer un .txt desde el php.

    ResponderEliminar
  7. ojala se pudiera con html5 y no con php

    ResponderEliminar