Afficher aléatoirement une citation sur votre site

J'ai trouvé l'idée sympa d'ajouter une page sur le site pour afficher aléatoirement une citation. Un peu de culture et de sagesse ne fera pas de mal (surtout quand elle s'accorde bien au numérique et au logiciel libre), mais je ne vous forcerai pas.

C'est plutôt simple et ça peut se décliner assez facilement selon les besoins. On peut afficher une citation mais on peut la remplacer par une image d'illustration, une astuce, un article, ...

Pour mettre ça en place, il n'y a besoin que deux éléments: un fichier texte contenant les citations et une page en PHP qui les affichera.

Le fichier texte doit contenir une seule et unique citation par ligne. Ici, il inclut les balises HTML pour inclure la mise en forme.


code
random.txt
<blockquote>La connaissance est la seule chose qui s'accroit lorsqu'on la partage. <cite>Sacha Boudjema </cite></blockquote>
<blockquote>La vérité attend. Seul le mensonge est pressé.  <cite>Alexandru Vlahuta </cite></blockquote>
<blockquote>L'homme fort cache ses muscles. C'est le coq qu'on entend crier, jamais le boeuf. <cite>Félix Leclerc</cite></blockquote>

Ensuite, on va afficher les résultats dans une page. Il suffit simplement de recopier le code ci-dessous en modifiant les variables:

  • $file: emplacement du fichier qui contient les citations.
  • $start: nb de lignes d'en-tête à exclure.
  • $end: supprime le retour à la ligne de fin de fichier.
  • $urlPage: URL de la page.


code
random.php
<?php
$file = file('random.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // A MODIFIER >> Emplacement du fichier qui contient les citations
$start= 2 ; // A MODIFIER >> Nb de lignes d'en-tête à exclure 
$end= 1 ; // A MODIFIER >> Supprime le retour à la ligne de fin de fichier
$urlPage="/data/documents/0003/random.php"; // A MODIFIER >> URL de la page

$total = count($file); // Total du nombre de lignes du fichier
$end=$total - $end; // Nb de ligne total
$urlVar=preg_replace('/(^.*?)\?/', '', $urlPage."?id") ; //  variable à récupérer
$urlGet=$urlPage."?id"; // URL pour la navigation

$id = isset($_GET[$urlVar])?intval($_GET[$urlVar]):intval(mt_rand($start, $end)); // on récupère l'ID 
echo $file[$id]; // Affiche le résultat
?>
On peut également ajouter un menu de navigation.

code
menu de navigation

<div id="pagination" >
<?php  
$previous=( $id >= $start) ? "  <a href=\"".$urlGet."=". ($id-1) ."\">Précédent</a> | " : "" ; echo $previous; 
$rand="  <a href=\"".$urlGet."=".(intval(mt_rand($start, $end)))."\">Aléatoire</a>  " ; echo $rand; 
$next=( $id != $end ) ? " | <a href=\"".$urlGet."=". ($id+1) ."\">Suivant</a>  " : "" ; echo $next; 
?>
</div>
C'est terminé.

Pour voir le résultat en direct sur le site et la page des citations.
Un autre exemple pour afficher des images aléatoirement.

Ressources

4 commentaires

Philippe Peret |

Merci pour l'astuce, ça peut servir pour des sites de littérature ou de cinéma par exemple !

krice |

Merci, je souhaite intégrer a mon site une pages de citations comme sur la votre http://blog.niqnutn.com/index.php?static10/citations mais quand je cliques sur aléatoire car je n'ai que ce bouton de visible, cela me lance directement le random.php fonctionnel dans une page vierge qu'avec les citations au lieu de l’intégrer sur ma page static. Auriez vous une solution ?? Ou pouvez vous m indiquer par mail.

nIQnutn |

@krice :
Il suffit de copier random.php et créer un fichier random.txt. Ensuite, il faut bien modifier les premières variables mais seul $file et $urlPage sont vraiment importantes.
Si besoin, pourquoi ne pas demander sur le forum de PluXml ou d'Alsacréation qui pourront te donner quelques explications supplémentaires.

Pour exemple, avec la page http://blog.niqnutn.com/index.php?static10/citations
$file = file('data/documents/010/citations.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // A MODIFIER
$urlPage="index.php?static10/citations"; // A MODIFIER

krice |

Merciiiiii , après quelques heures a essayer tout et n importe quoi, ta réponse fut le déclencheur.
Mon erreur était sur la variable $file mit comme sur l'exemple qui était mal pointée, tout simplement, alors que je m'orientait sur $urlPage .grrrrrrr
Tout fonctionne, reste plus que la mise en page ...:-)

Fil RSS des commentaires de cet article

Écrire un commentaire