Liste de mot sur fichier txt dans lequel le script doit piocher

Liste de mot sur fichier txt dans lequel le script doit piocher - PHP - Programmation

Marsh Posté le 03-05-2006 à 13:46:31    

Bonjour à tous !
Voilà, j'ai besoin d'une génération de mots aléatoire, que le script tire un mot du lot à chaque fois.  
J'ai donc fait un petit rand() comme suit :  
 

Code :
  1. $mot = rand(0,32);
  2. switch ($mot) {
  3. case 0:
  4.    $mot = "jeux";
  5.    break;
  6. case 1:
  7.    $mot = "rencontres";
  8.    break;
  9. case 2:
  10.    $mot = "ordinateurs";
  11.    break;
  12. ...
  13. case 31;
  14.     $mot = "box";
  15.     break;
  16. case 32;
  17.     $mot = "console";
  18.     break;
  19. }


 
Bon, d'accord, ça fonctionne, mais si je veux arriver a quelques centaines de mots, je vais vite galérer...  
Donc je voudrais savoir, quelqu'un aurait-il une idée de comment faire pour mettre les mots les uns a la suite des autres dans un fichier txt, et que le script pioche tout seul un mot au pif dedans ? :)
Ou quelquechose de similaire, quoi :)
 
Merci ! :D


---------------
Hello hello super jello
Reply

Marsh Posté le 03-05-2006 à 13:46:31   

Reply

Marsh Posté le 03-05-2006 à 14:03:59    

tu mets tous tes mots dans un fichier, séparés par des ';' par exemple et ensuite:

Code :
  1. $mot= array_rand(split(';' ,file_get_contents('tonfichier')));


edit: si tu dois piocher plusieurs mots, tu as un deuxième paramètre à array_rand qui sert à ça.
si tu dois piocher plusieurs fois un mot, mets ton file_get_contents dans une variable pour ne lire le fichier qu'une seule fois!


Message édité par anapajari le 03-05-2006 à 14:05:17
Reply

Marsh Posté le 03-05-2006 à 16:30:53    

Coucou et merci de ta réponse !
Il y a comme un problème.  
Lorsque j'utilise ta technique, et que je fais un echo $mot; j'ai un chiffre ( aléatoire, genre 1, 28, etc.. ) ca doit correspondre à la position du mot pioché dans le texte, mais le problème c'est que c'est pas le mot lui même qui est sorti :/  
 
Normal ? :/


---------------
Hello hello super jello
Reply

Marsh Posté le 03-05-2006 à 16:33:21    

Reply

Marsh Posté le 03-05-2006 à 16:35:21    

pouzy a écrit :

ca doit correspondre à la position du mot pioché dans le texte

donc tu peux corriger l'erreur toi même vu que tu en connais la cause :whistle:  

Reply

Marsh Posté le 03-05-2006 à 16:36:37    

comme tu le signales fort justement sielfried array_rand retourne en fait la position de l'element dans le tableau ( je m'a planté il faut bien le reconnaitre)...
Du coup tu peux pas tout faire en une ligne:

Code :
  1. $tousLesmots = split(';' ,file_get_contents('tonfichier'));
  2. $mot = $tousLesmots[array_rand($tousLesmots)];

Reply

Marsh Posté le 03-05-2006 à 16:37:02    

Oui, je suis déjà dessus, mais ça m'avance pas énormément.. je ne suis pas très calé en codage : en gros, il me manque un array ? :/


---------------
Hello hello super jello
Reply

Marsh Posté le 03-05-2006 à 16:43:34    

un détail : explode est plus rapide que split (oui je chipote ^^)

Reply

Marsh Posté le 03-05-2006 à 16:44:05    

il suffit de remplacer split par explode ? pAs de modif majeure a faire ? ( merci anapajari, c'est nickel sinon :) )

Message cité 1 fois
Message édité par pouzy le 03-05-2006 à 16:47:00

---------------
Hello hello super jello
Reply

Marsh Posté le 03-05-2006 à 16:57:46    

pouzy a écrit :

il suffit de remplacer split par explode ? pAs de modif majeure a faire ? ( merci anapajari, c'est nickel sinon :) )

oui, mais c'est pas obligatoire, c'était juste histoire de chipoter  :whistle:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed