Fonction de conversion d'une chaine de caractère vers un typage unix

Contenu du snippet

Bonjour,
Alors cette fonction permet de convertir n'importe quelle chaine de caractère en une équivalence alphanumérique sans accents, espaces et autres particularités.
Le but est simple, c'est pour l'utiliser (dans mon cas) pour l'url rewriting, car les accents et les espaces ca fait bugger le systeme (même la fonction urlencode apparement)

Si je la poste ici, c'est aussi afin de trouver éventuellement une meilleure solution de conversion, car je n'ai pas réussi à mettre la main sur une méthode plus simple et (voire) plus rapide.
Je vous laisse donc découvrir le tout et attends vos commentaires pour l'évolution de cette fonction.

Source / Exemple :


function toUnix ($sChaine) {
	$sSearch = array ('/à|á|â|ä|ã|å/', '/À|Á|Â|Ä|Ã|Å/', '/è|é|ê|ë/', '/È|É|Ê|Ë/', '/ì|í|î|ï/', '/Ì|Í|Î|Ï/', '/ò|ó|ô|ö|ø/', '/Ò|Ó|Ô|Ö|Ø/', '/ù|ú|û|ü/', '/Ù|Ú|Û|Ü/', '/ÿ/', '/Ÿ/', '/ñ/', '/Ñ/', '/ç/', '/Ç/', '/[^a-z0-9]/i');
	$sReplace = array ('a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U', 'y', 'Y', 'n', 'N', 'c', 'C', '_');
	
	return preg_replace ($sSearch, $sReplace, $sChaine);
}

Conclusion :


L'usage de la méthode strtr pose problème si l'encodage du fichier est en utf-8. (un accent est codé sur plusieurs bit, et pas un charactère, du coup strtr retourne n'importe quoi !)

Cette méthode semble être fonctionnelle dans n'importe quel cas ! :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.