#! /usr/bin/php License: GPL Note: this program must be called from the command line. */ /* Cette constante passée a true permet de voir comment le script travaille. Ca retourne : * la taille du mot courant * a quoi ressemble la chaine avant d'être mélangée * un jeton pour savoir dans quelle partie du script le mot melangé est passé. */ define('DEBUG',false); $ponctuation = ',;:?.=+-_)(|@#"\'!°[]*%/\\'; for($i=0;$i$v) { $len = strlen($v); $mots[$k] = ''; // mots de sortie. un $argv dont les mots ont été travaillé. $tmc=''; // temporaire Mot Courant if (DEBUG===true) echo $v." [len: ".$len."]\n"; for($i=0;$i<$len;$i++) { if (!in_array($v{$i},$pa) && $i!=$len-1) { $tmc.= $v{$i}; continue; } if ($i==$len-1 && (strlen($tmc)+1)<=3) { $mots[$k].=$tmc.$v{$i}.(DEBUG===true?'[2]':''); $tmc=''; continue; } if ((in_array($v{$i},$pa) || $i==$len-1) && (strlen($tmc)+1)>=4) { $tlen = strlen($tmc)-1; // Si la lettre courante est en fait un caractère de ponctuation. On récupère la dernière lettre de $tmc pour la mettre dans $last if (in_array($v{$i},$pa)): $last = $tmc{$tlen}.$v{$i}; $tmc = substr($tmc,0,$tlen); else: $last = $v{$i}; endif; $first = $tmc{0}; if (DEBUG) echo var_dump($tmc)."\n"; // ceci va créer un mot sous cette forme [première lettre][lettres melangées][dernière lettre] $mots[$k].= $first.str_shuffle(substr($tmc,1,strlen($tmc)-1)).$last.(DEBUG===true?'[3]':''); $tmc=''; continue; } if (in_array($v{$i},$pa) && strlen($tmc)<=3) { $mots[$k].= $tmc.$v{$i}.(DEBUG===true?'[3]':''); $tmc=''; continue; } $tmc.= $v{$i}; } $mots[$k].=$tmc.(DEBUG===true?'[1]':''); } echo implode(' ',$mots),"\n"; ?>