Bonjour,

Je cherche à afficher une citation aléatoire à chaque chargement de la page puisée dans une liste de différentes citations notées dans un fichier .txt par exemple, je ne maitrise pas le javascript, ni le php mais je suis preneur de toute info qui pourra m'aider à comprendre la mise en place de cela. (un peu comme les citations que l'on voit en bas sur Alsacréations)

Par avance merci Smiley ravi
Modifié par dedic (15 Jul 2010 - 12:28)
Alors voila, j'avais fait ça une fois avec des bouts de code un pris un peu partout. J'ai mis des commentaires :


<?php 
function afficherligne($ligne) 
{ 

$nom_fichier = "fichier.txt"; // le nom de ton fichier
$fichier = @fopen($nom_fichier, "r" ); //ici on ouvre le fichier
if ($fichier)  
{ 
// On boucle en incrémentant $actuelle de 1 tant que $actuelle n'équivaut pas à $ligne,  
for ($actuelle=1; $actuelle <= $ligne; $actuelle++) 
{ 
// ici on attribu la ligne en cours à $temp 
// tant que la limite définie ou la fin du fichier n'a pas été 
// atteinte, on relance la boucle et on met $contenu à jour 
$temp = fgets($fichier); 
if (empty($temp)) { break; } 
else { $contenu = $temp; } 
} 
} 

else //sinon, c'est le fichier n'a pas pu etre ouvert
{ $contenu = "Erreur d'ouverture de <em>$nom_fichier</em>"; //un petit message d'erreur pour la route
} 

@fclose($fichier); // On ferme le fichier
print $contenu; //et on affiche contenu
} 
$aleatoire = rand(1, 8); // aleatore créé un nombre aleatoire (sans rire ?) 8 est le nombre de ligne en tout.
?>


Et comme c'est une fonction, tu peux l'afficher ou tu veux avec :

<?php afficherligne($aleatoire); // et la ben on affiche le tout !?> 


Le gros bout de code tu peux le mettre dans un fichier ou il y tout plein de fonctions qui peuvent etre utiles et ensuite faire un include de ce fichier dans la page ou tu veux afficher ta ligne.

Il faut faire attention a la variable $aleatoire, si tu donnes par exemple 45 lignes et que ton fichier n'en compte que 6 il n'affichera rien !

Voila, n'esites pas si tu comprend pas Smiley rolleyes

EDIT: Heu c'est normal que le code s'affiche pas avec la coloration PHP?
Modifié par bioslord (15 Jul 2010 - 00:25)
Modérateur
Et l'eau,

Il y a plus simple et plus rapide à mettre en oeuvre :

<?php
    function lectureAleatoire($cheminNomFichier){
        if(!file_exists($cheminNomFichier)){
            return "erreur !";
        }
        $lignes = file($cheminNomFichier,FILE_SKIP_EMPTY_LINES);
        $ligne = array_rand($lignes);
        
        return $lignes[$ligne];
    }
    
    echo lectureAleatoire("un_fichier.txt");
?>

<<<EDIT
amélioration du code. Beaucoup plus propre.
EDIT;

Bonne soirée Smiley smile
Modifié par niuxe (15 Jul 2010 - 02:04)
Modérateur
@biolord : Tu utilises rand(). Or il est plus judicieux d'utiliser mt_rand(). Cette dernière est nettement plus rapide. Smiley cligne

@+
Modifié par niuxe (15 Jul 2010 - 02:05)
Merci beaucoup pour vos réponses qui semble fonctionner Smiley lol

(bon j'ai pas encore le résultat visuel escompté mais ça c'est mon boulot de trouver le reste pour que cela me plaise Smiley ravi )

Merci à vous deux
Tout à fait Laurie-Anne

Je peux dire maintenant que mon problème est résolue Smiley lol

(je faisais quelques teste avant d'afficher la résolution)