Utile : conserver l'indentation et création de nom "simples"
Par -Alexandre LEGOUT aka LAlex- le mercredi, octobre 6 2004, 18:24 - PHP - Lien permanent
Etant donné que je suis plus occupé à réinstaller mon ordinateur et à me réinstaller moi-même qu'à coder (ben oui, je déménage), je ressors quelques lignes de PHP que j'utilise depuis longtemps pour alimenter quelque peu ce blog qui à tendance à roupiller. ![]()
La première fonction sert à générer des noms "simples", pouvant servir à des URL. C'est en fait la fonction que j'utilise pour les adresses de mes pages. Elle élimine les accents, ponctuations et mots de moins de 3 lettres, et remplace les espaces par des tirets :function simpleName($str) {
La deuxième me sert à conserver l'identation du code lorsqu'il est affiché en HTML. Pour cela, la chaine retournée alterne les espaces "normaux" et les espaces insécables HTML . Elle utilise en majorité str_replace pour de meilleures performances. C'est ce code qui est utilisé par ma classe Colori :
$araccent = array("#[áåâäàã]#","#ç#","#[êéèë]#","#[íîïì]#","#[óôöòõ]#","#[ûüùú]#","#ñ#","#[ÿý]#", "#[^\w ]#");
$arnoaccent = array("a", "c", "e", "i", "o", "u", "n", "y", "");
$ret = preg_replace("#(\W|\s)\w{1,2}(?=\W|\s)#", "$1$2", $str);
$ret = preg_replace(array("#\s{2,}#","# #"),array(" ", "-"), trim(preg_replace($araccent, $arnoaccent, strtolower($ret))));
return $ret;
}function keepHTMLIndent($str) {
$ret = str_replace(" "," ",$str);
$ret = str_replace(" "," ",$ret);
$ret = str_replace("\t"," ",$ret);
$ret = preg_replace("/^ {1}/m", ' ',$ret);
return $ret;
}
Et wala, à bientôt ! ^^
Commentaires
Evidemment, il fallait que la fonction des noms simples ne marche pas correctement avec l'URL de ce ticket !
tiens tiens ...
merci 
yes justement j'avais besoin d'un truc dans le genre ^^ je vais pouvoir m'en inspirer
meurchi LAlex !
Par contre je pige pas bien le fonctionnement de la 2ème fonction keepHTMLindent... tu remplace 4 espaces par 4 espaces.... Il ne seront quand même pas giclé lorsque la page s'affiche ? Bon je suppose que non puisque tu le dit
mais pouquoi ?
@++
Oui manque pas aussi un return dans ta fonction ?
euh, au passage, dans la deuxième fonction, pourquoi une variable $ret ? et en plus, je confirme, il faut retourner la valeur $str...
en général c'est $ret qu'on retourne comme sur la fonction du dessus
Wala, la deuxième est rectifiée !
Un problème d'échapement du code HTMLet un oubli du "return" ! 
on te pardonne
Ah moi qui pensait que LAlex avait réussi à créer un langage de programmation intelligent à partir de PHP, la fonction savait qu'il fallait retourner une valeur puisque c'est ça que LAlex voulait mentalement. Ça bien l'air que c'est pas ça, sinon LAlex aurait eu une fortune.
Ah tu déménage aussi ? décidément, on a des existences parallèles
(cf mon comment sur "envie de meurtre") 
Fil des commentaires de ce billet