Télécharger
Noter:

Ajouté le 16/09/2013
Visionné 1925 fois
4.5/5

Générateur de pseudo en PHP

Description

Ce générateur aléatoire de pseudo compose un nom avec un nombre variable de lettres:

En réalité on obtient une fonction qui fait:

Générateur de nom divers et variés à consonance asiatique
Générateur de nom à consonance moins asiatique
Générateur de nom à consonance viking
Générateur de nom à consonance de nom de médicament (et oui, comme quoi utiliser des préfixes de mots Français peut parfois faire des choses miraculeuses! lol)

Exemples de mots générés avec cette fonction:


Avec 5 lettres:

Tijar
Doudi
Xalyn
Xejuj
Xinan

Avec 10 lettres:

Tanugilovu
Rotipuquee
Geizehorij
Moepanuqui
Fipameyxee

Avec l'option "type=2", 5 lettres:

Kawek
Kiges
Leopi
Quofu
Puake

Avec 10 lettres:

Nieodabeko
Siremuquon
Fenanihece
Pugumilaha
Kequenevob


Avec le type 3 (consonance viking):

Gerason
Guntaic
Sigkina
Davaésol
Vigason

Avec le type 4 (consonance nom de médicaments ^^):

Exafre
Subexal
Ininem
Ensubac
Deenex


function genererPseudo($caracteres=5,$type=1){
//le mot final sera composé par des consonnes et voyelles, afin de faire un nom lisible on mettra des consonnes puis des voyelles, puis deux voyelles (aléatoirement) puis une consonne, etc...)
//lettres qui vont être utilisées
//le type 1 comporte toutes les lettres de l'alphabet
if($type==1){
$Consonnes=['qu','b','c','d','f','g','h','j','k','l','m','n','p','r','s','t','v','w','x','z'];
$Voyelles=['a','e','i','o','u','y'];
}
//le type 2 comporte des lettres en moins: j, x, z, y pour un consonance moins asiatique
elseif($type==2){
$Consonnes=['qu','b','c','d','f','g','h','k','l','m','n','p','r','s','t','v','w'];
$Voyelles=['a','e','i','o','u'];
}
//pour les deux types suivants, il est évident que le nombre de caractère sera plus élevé car à la place d'une lettre on à jusqu'à trois lettre ensemble
//le type 3 contient des portions de noms viking, afin d'en composer un nouveau
elseif($type==3){
$Consonnes=['alb','alr','are','ast','axe','axi','ber','bjo','bre','bri','bru','cyb','dag','dav','eli','els','elv','eri','ery','fre','gal','ger','gre','gud','gun','gus','har','hed','hel','hil','ing','jan','jen','jor','kar','kri','lar','lei','len','loa','lud','vig','lyn','mai','man','mar','mat','my','nik','nil','nis','odi','ola','osc','rol','san','sig','smi','sol','sor','sve','swa','tho','tyr','ulr','urs','val','van','yor'];
$Voyelles=['ick','ik','en','id','el','il','da','it','ta','de','er','le','ar','in','sa','ka','ic','is','on','ya','ja','rd','ld','go','rg','ge','na','of','an','rt','aé','if','oa','ki','va','ig','ed','ny','my','as','ey','nn','or','ra'];
}
//le type 4 contient des préfixes de mots à la places des consonnes, on dirait des noms de médicament :P
elseif($type==4){
$Consonnes=['en','em','in','im','ex','mi','sub','re','ac','af','al','ap','co','de','ex'];
$Voyelles=$Consonnes;
}
$pasDeuxFois=['x','w','v','h','i','u','y'];//lettres qu'on ne veut pas deux fois de suite
$NbrDeConsonnes=count($Consonnes)-1;//on compte combien il y a de consonnes
$NbrDeVoyelles=count($Voyelles)-1;//on compte combien il y a de voyelles
// On génère le pseudo
$pseudo='';//on initialise notre variable pseudo, on viendra y rajouter caractère par caractère pour le construire
$mettre='consonne';//on commence par mettre une consonne
$cv=0;//cv pour "compter voyelle" (au bout de deux maximum on repassera à consonne)
for($i=0;$i<=$caracteres-1;$i++){
if($mettre=='consonne'){
//on vérifie que ça termine pas par "qu"
do{
$caractere=$Consonnes[rand(0,$NbrDeConsonnes)];
}while($caractere=='qu' AND ($i+1)==$caracteres);
if($caractere=='qu')$i+=1;//on compte deux caractères au lieu d'un pour "qu"
$mettre='voyelle';//on repasse à voyelle
$pseudo .= $caractere;//on choisi une consonne aléatoirement

} elseif($mettre=='voyelle'){
//on vérifie si le nouveau caractères utilisé n'est pas un qui est interdit à la suite, dans $pasDeuxFois
do{
$caractere=$Voyelles[rand(0,$NbrDeVoyelles)];
} while((substr($pseudo,-1)==$caractere) AND in_array(substr($pseudo,-1),$pasDeuxFois));
//c'est un caractère autorié, on l'ajoute au pseudo
$pseudo .= $caractere;
//si on arrive à un maximum de 2 voyelle à la suite, on passe au consonne
if($cv==2){
$mettre='consonne';
continue;//on passe à la prochaine itération (soit; une consonne)
}
//une chance sur deux de passer à consonne
if(rand(1,2)==1) $mettre='consonne';
//sinon on compte les voyelles pour qu'à la deuxième maximum on repasse à consonne
$cv+=1;
}
}
return $pseudo;
}

//par défaut, la fonction affiche 5 caractères avec le type 1
echo "<br/>Défaut: ".ucfirst(genererPseudo());

echo "<br/><br/>5 noms par défaut (avec 5 caractères et le type 1):<br/>";
//On affiche 5 noms avec la première lettre en majuscule avec la fonction ucfirst
for($i=1;$i<=5;$i++)
echo "<br/>".ucfirst(genererPseudo(5));

echo "<br/><br/>5 noms avec 5 caractères et le type 2:<br/>";
//On affiche 5 noms avec la première lettre en majuscule avec la fonction ucfirst
for($i=1;$i<=5;$i++)
echo "<br/>".ucfirst(genererPseudo(5,2));

echo "<br/><br/>5 noms avec 4 caractères (plus en réalité) et le type 3:<br/>";
//On affiche 5 noms avec la première lettre en majuscule avec la fonction ucfirst
for($i=1;$i<=5;$i++)
echo "<br/>".ucfirst(genererPseudo(3,3));

echo "<br/><br/>5 noms avec 4 caractères (plus en réalité) et le type 4:<br/>";
//On affiche 5 noms avec la première lettre en majuscule avec la fonction ucfirst
for($i=1;$i<=5;$i++)
echo "<br/>".ucfirst(genererPseudo(3,4));

/* Affichera quelque chose comme:

Défaut: Jacoy

5 noms par défaut (avec 5 caractères et le type 1):

Joruc
Soxyb
Pieje
Hyely
Pouoj

5 noms avec 5 caractères et le type 2:

Couar
Hicak
Hoate
Lowaa
Kukio

5 noms avec 4 caractères (plus en réalité) et le type 3:

Kriicsve
Thogomai
Yorermy
Eriitbre
Roligsol

5 noms avec 4 caractères (plus en réalité) et le type 4:

Acapaf
Dealin
Acrede
Afenap
Dedeaf
*/

Commentaires

Pas encore de commentaire ajouté, soyez le premier!

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée

Captcha * memo1memo2

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter