Foros del Web » Programando para Internet » PHP »

Duda con lectura de archivo - Imprimir x linea

Estas en el tema de Duda con lectura de archivo - Imprimir x linea en el foro de PHP en Foros del Web. Gente, Tengo el siguiente script de frases al azar. <? $delim = "\n"; $quotefile = "quotes.txt"; $fp = fopen($quotefile, "r"); $contents = fread($fp, filesize($quotefile)); $quote_arr ...
  #1 (permalink)  
Antiguo 15/09/2008, 23:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 20 años, 10 meses
Puntos: 2
Duda con lectura de archivo - Imprimir x linea

Gente,
Tengo el siguiente script de frases al azar.
<?
$delim = "\n";
$quotefile = "quotes.txt";
$fp = fopen($quotefile, "r");
$contents = fread($fp, filesize($quotefile));
$quote_arr = explode($delim,$contents);
fclose($fp);
srand((double)microtime()*1000000);
$quote_index = (rand(1, sizeof($quote_arr)) - 1);
$herequote = $quote_arr[$quote_index];
echo $herequote;
?>

Lo que necesitaria es que no sean aleatorias, es decir, que una vez mostrada la primera, pase a la segunda y asi.
Pense hacerlo con una base de datos que cuente el salto de linea, lo guarde y lea a partir de la proxima.
Algun otro consejo?

En el caso de estar en lo correcto... Alguno me ayudaria con el code. Solo quiero tener un archivo txt con frases y que no se repitan, es decir, que salgan aleatoriamente.

Gracias :D
  #2 (permalink)  
Antiguo 16/09/2008, 01:26
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: Duda con lectura de archivo - Imprimir x linea

Para sacar el archivo por lineas es mejor usar file()

Código PHP:
<?php
$archivo 
file('archivo.txt');
$size = (count($archivo)-1);
$rand mt_rand(0$size);
echo 
$archivo[$rand];
?>
Lo de que no seran aleatorias. Podrias tener digamos (por ejemplo) 30 - 60 frases.
Y dependiendo de los minutos (con date("i")) mostrar la frase. (Podria hacerse con la hora tambien).
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




La zona horaria es GMT -6. Ahora son las 16:22.