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.
<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.
<?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
?>
<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>
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
2016 nIQnutn CC-BY