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

22 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
  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
  8. Betting methods have been well-liked with gamblers for as 온라인 카지노 long as|for so lengthy as} betting has been in existence and lots of|and plenty of} gamblers believe in these betting methods religiously. It is solely up to as} the participant to resolve to leave a much-appreciated gratification. Check our page devoted to each certainly one of these games and explore the principles, suggestions and tricks we have there for you. Moreover, any game involving dice are games of pure likelihood and no ability. Each game you play at a casino has a unique statistical probability of you profitable.

    ResponderEliminar