Cómo leer en un archivo .txt una línea al azar o aleatoria con PHP utilizando rand y count

Si tenemos un archivo .txt podemos leer gracias a PHP una línea aleatoria del mismo.

Imaginemos que tenemos el siguiente archivo 1.txt:

1,primera
2,segunda
3,tercera
4,cuarta
5,quinta
6,sexta
7,septima

Para leer una línea al azar de este .txt podemos crear el siguiente .php:

$contenido = file("1.txt");
$linea_azar = $contenido[rand(0, count($contenido) - 1)];
echo $linea_azar;

Con esto ya podríamos leer las filas del archivo 1.txt al azar.

Publicado por

victor

Hola!. Me llamo Víctor y soy Ingeniero Agrónomo de formación y programador web de profesión (desde el año 2006). Por otra parte me gusta, entre otras aficiones, el senderismo, jugar al futbol y al FIFA en la PS4. Te animo a participar en mi web www.biolucas.com

6 comentarios sobre “Cómo leer en un archivo .txt una línea al azar o aleatoria con PHP utilizando rand y count”

  1. hola y como se hace lo mismo que lea un texto de un txt al azar pero que en determinado tiempo (segundos) muestre otro texto del archivo txt también al azar? y asi vaya cambiandose con ese determinado X segundos
    Gracias

    1. Hola Julio, muchas gracias por colaborar en el blog. Lo vamos estudiando, pero mientras ya dejo publicado tu pregunta por si te pueden echar una mano en este asunto.

      Un saludo, Víctor

  2. esta muy bien el ejemplo amigo, pero se podria hacer igual para leer solo el ultimo registro que se va insertando en el archivo de texto? estoy tratando de hacerlo para guardar los registros de un txt, pero solo quiero lo que se va insertando nuevo…

    1. Hola Julio, para leer la última línea de un txt puedes utilizar esto:

      $contenido = file("1.txt");
      $ultima_linea = $contenido[count($contenido) - 1];
      echo $ultima_linea;
      

      Espero que te sirva. Cualquier duda que tengas avísame.

      Un saludo, Víctor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

CommentLuv badge