Afficher 10 phrases au hasard au lieu d'une seule

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1798
Inscription: Lun Jan 08, 2007 21:48

Afficher 10 phrases au hasard au lieu d'une seule

Message le Jeu Mar 01, 2007 11:40

Bonjour,

J'utilise le script ci-dessous pour afficher une phrase au hasard. Je voudrais maintenant en afficher 10 d'un coup, d'un seul.

$compteur = 0;
$fp = fopen("phrase.txt", "r");
while (!feof($fp)) {
$enr = fgets($fp, 4096);
$tab[] = $enr;
$compteur++;
}
srand((double)microtime()*1000000);
$nbr = rand(0, ($compteur-1));
echo '

'.$tab[$nbr].'


Comment adapter ce script sans avoir à le copier/coller dix fois de suite :?

Merci d'avance :D


dmathieu
Modérateur
Modérateur
 
Messages: 6930
Inscription: Ven Jan 09, 2004 16:21

Message le Jeu Mar 01, 2007 11:51

Code: Tout sélectionner
$fp = file('phrase.txt');

$i = 0;
while ($i < 10) {
     srand((double)microtime()*1000000);
     $nbr = rand(0, (count($fp)-1));

     echo $fp[$nbr];
     $i++;
}


Mais la, tu a des chances d'avoir deux fois la même dans les 10.


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1798
Inscription: Lun Jan 08, 2007 21:48

Message le Jeu Mar 01, 2007 12:07

Merci kazhar !

C'est pas trop grave si y'a des doublons.

Tu l'as fait de tête à l'instant ou t'en avais un tout prêt dans le genre ?


La Chaise sauvage
WRInaute passionné
WRInaute passionné
 
Messages: 693
Inscription: Lun Avr 11, 2005 10:37

Re: Afficher 10 phrases au hasard au lieu d'une seule

Message le Jeu Mar 01, 2007 12:35

sinon tu peux utiliser la fonction dont on avait discuté dans ce sujet, et là tu n'auras pas de doublons

Code: Tout sélectionner
$compteur = 0;
$fp = fopen("phrase.txt", "r");
while (!feof($fp)) {
  $enr = fgets($fp, 4096);
  $tab[] = $enr;
  $compteur++;
}

$aff = distinctRand(10,$compteur-1,0);

foreach($aff as $nbr){
  echo $tab[$nbr];
}


function distinctRand($nb,$max,$min=1) {
   $res = array();
   for($i=0 ; $i < $nb ; $i++) {
      $n = mt_rand($min,$max);
      while(in_array($n,$res)) {
         $n = mt_rand($min,$max);
      }
      $res[$i] = $n;
   }
   return $res;
}


DISCLAIMER : J'ai pas testé !!

:wink:


dmathieu
Modérateur
Modérateur
 
Messages: 6930
Inscription: Ven Jan 09, 2004 16:21

Message le Jeu Mar 01, 2007 13:31

Pour ma part, fait de tête aussi, pas testé.


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1798
Inscription: Lun Jan 08, 2007 21:48

Message le Jeu Mar 01, 2007 15:20

Pas le courrage de tester ton code La Chaise sauvage, ça fonctionne avec celui de kazhar, mais je te remercie quand même.
Ca servira sans doute à quelqu'un d'autre. ;-)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: patou140 et 0 invités