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!!!

17 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