En PHP, et dans les autres langages aussi, il existe les fonctions générant de l’aléatoire.
En premier lieux, pour ces fonctions-là, nous pensons souvent à rand et mt_rand. Elles sont les plus courantes, générant des valeurs aléatoires et nous retournant des chiffres.
Il existe d’autres fonctions, basé sur l’aléatoire, mais qui ne nous retourne pas des chiffres. Je vais prendre l’exemple de array_rand.
array_rand : comment ça marche
J’ai rencontré cette fonction il n’y a pas très longtemps.
array_rand prend une ou plusieurs clés, au hasard dans un tableau, et retourne la ou les clés de ces valeurs.
Voici un exemple de cette fonction :
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
Ce code nous donnera en sortie, 2 des noms de personnage de la saga Matrix contenu dans le tableau.
Chose importante, il faut savoir que cette fonction ne convient pas pour de la cryptographie.
Un problème réel
Comme je disais plus haut, j’ai connu cette fonction il n’y a pas longtemps, pour la création du bot Twitter @1animalparjour.
Ce bot a pour but de donner, chaque jour, une photo d’animal mignon.
Pour faire cela, j’ai cherché ou créé différentes API qui contenaient les photos des différents animaux.
Les URLs des différentes API ont ensuite été mises dans un tableau PHP.
$ar = [
'https://random.dog/woof.json',
'https://randomfox.ca/floof/',
'http://randomanimal.guillaume-richard.fr/animals/bunny/',
'http://randomanimal.guillaume-richard.fr/animals/cat/',
'http://randomanimal.guillaume-richard.fr/animals/hedgehog/'
];
$rand_keys = array_rand($ar);
$infos = $ar[$rand_keys];
var_dump($infos); // réponse possible : https://random.dog/woof.json
Ce code en lui-même ne sert pas à grand chose. C’est juste pour l’exemple.
La suite de mon script de mon bot récupère ce lien, et lit les informations qui y sont contenu.
Je récupère le lien de l’image, télécharge cette dernière image, puis l’upload sur le fil Twitter tous les matins.
Use Case
Je ne peux pas forcément montrer de réel Use Case de mon script. Comme vous pouvez le comprendre, la finalité de ce script étant l’upload d’image sur le fil Twitter.
Je ne peux que monter certaines des photos qui sont déjà sur ce fil Twitter.
Conclusion
J’ai créé ce compte Twitter pendant mon chômage partiel. Je voulais voir ce qu’il était possible de faire dans ce cas-là.
Cela m’a permis d’apprendre à connaitre cette fonction, et ce qui était possible de faire avec.
Il est tout à fait possible d’améliorer cette fonction, et même de la refaire complètement en quelques lignes. Je compléterai cette article quand j’aurai fait cette partie.
J’espère que cette exemple vous à plus.