1) Dentro del alojamiento web, copie un archivo plano (tipo .txt), que contiene un refrán por cada linea. Este archivo se llama refranes.txt
2) Creo un archivo llamado: inicio.php y libreria_elegir_refran.php:
El archivo inicio.php contiene el siguiente código:
<?php
include("libreria_elegir_refran.php");
crear_inicio();
elige_refran();
crear_final();
?>
Como veis he creado una libreria llamada "libreria_elegir_refran.php" donde están definidas varias funciones:
- Las funciones "crear_inicio()" y "crear_final()" generan el código de la página html.
- Y la función "elige_refran()", es la que va a elegir aleatoriamentoriamente el refrán de un archivo que va a contener todos los refranes a mostrar.
Veáse el siguiente esquema:
Te enseño el código de la subrutina elige_refran() (que esta dentro del fichero libreria_elegir_refran.php) he puesto comentarios para que veais que hace:
$ln=0;
//función de elegir refran
function elige_refran()
{
// abre el archivo refranes_por_presentar para leerlo o crearlo
$presentar=fopen("refranes_por_presentar.txt","r") or
fopen("refranes_por_presentar.txt","w");
El archivo "refranes_por_presentar.txt", es el que va variando cada vez que se muestra un refrán, reduciendose cada vez que se presenta un refrán.
//contar lineas de refranes que quedan por presentar...
$ln= 0;
while ($line= fgets($presentar)) {
++$ln;
//Carga los refranes en matriz refranes
$refranes[$ln]=$line;
}
if ($ln==0) {
// recien creado
// copiar el archivo de reflanes como refranes_por_presentar.txt
$original=fopen("refranes.txt","r");
En el caso del que no contenga refranes el archivo "refranes_por_presentar.txt", leemos el archivo "refranes.txt" (que es el que contiene todos los refranes), y se los añadimos a "refranes_por_presentar.txt".
$ln=0;
while ($line= fgets ($original)) {
++$ln;
fputs($presentar,$line);
//Carga los refranes en matriz refranes
$refranes[$ln]=$line;
}
fclose($original);
}
Como veis, hemos creado una matriz refranes[] que es la que contiene los refranes a presentar.
Ahora empezamos el trabajo real: elegir un refran de modo aleatorio del archivo "refranes_por_presentar.txt":
// elijo un valor aleatorio de la matriz refranes
//alimentamos el generador de aleatorios
mt_srand (time());
//generamos un número aleatorio
$numero_aleatorio = mt_rand(1,$ln);
$refran="";
$refran=$refranes[$numero_aleatorio];
// escribo en el "refranero.html"
$ar=fopen("refranero.html","a") or
die("Problemas en la creacion final");
printf("%s",$refran);
fclose($ar);
Con la orden: printf("%",$refran) ya hemos escrito en el HTML, el refrán elegido aleatoriamente. ($refran=$refranes[$numero_aleatorio])
Ahora rehacemos el archivo "refranes_por_presentar.txt": lo creamos de nuevo añadiendo todos los refranes de la matriz refranes[] menos el que hemos presentado refranes[$numero_aleatorio]
// reescribo el archivo de "refranes_por_presentar.txt"
// menos el array que he presentado (se reduce en 1 su logintud)
$presentar= fopen("refranes_por_presentar.txt","w");
for($i=1;$i==($numero_aleatorio-1);++$i){
puts($presentar,$refranes[$i]);
}
// salto el valor que se ha presentado
for($i=($numero_aleatorio+1);$i==$ln;++$i){
fputs($presentar,$refranes[$i]);
}
fclose($presentar);
}
Y cerramos el archivo con la orden fclose.
Bueno, si teneis alguna duda, dejar un comentario.
Os dejo el enlace de descarga del los archivos, para que podais verlos completos.
Saludos