par
Elie » 06 déc. 2008, 21:56
2 bonnes réponses interessantes
Il faudrait effectivement que je complete mes caractères.
Et sinon effectivement avec str_replace ca marche mais la fonction est vraiment moins belle ...
2 Gros array() à la con :
// Simplification d'une chaine
function simplification($chaineNonValide) {
$chaineValide = str_replace(
array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'à', 'á', 'â', 'ã', 'ä', 'å', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ç', 'ç', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ÿ', 'Ñ', 'ñ'),
array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'c', 'c', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'y', 'n', 'n'),
$chaineNonValide
);
$search = array ('@[ ]@i','@[^a-zA-Z0-9_-]@');
$replace = array ('_','');
return trim(strtolower(preg_replace($search, $replace, $chaineValide)), '_');
}
J'en profite pour poser une autre question car j'ai remarqué ca en faisant mes tests :
echo 'La longeur de À retourne '.strlen('À'); // La longeur de À retourne 2
2 bonnes réponses interessantes :)
Il faudrait effectivement que je complete mes caractères.
Et sinon effectivement avec str_replace ca marche mais la fonction est vraiment moins belle ...
2 Gros array() à la con :
[php] // Simplification d'une chaine
function simplification($chaineNonValide) {
$chaineValide = str_replace(
array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'à', 'á', 'â', 'ã', 'ä', 'å', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ç', 'ç', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ÿ', 'Ñ', 'ñ'),
array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'c', 'c', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'i', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'y', 'n', 'n'),
$chaineNonValide
);
$search = array ('@[ ]@i','@[^a-zA-Z0-9_-]@');
$replace = array ('_','');
return trim(strtolower(preg_replace($search, $replace, $chaineValide)), '_');
}[/php]
J'en profite pour poser une autre question car j'ai remarqué ca en faisant mes tests :
[php] echo 'La longeur de À retourne '.strlen('À'); // La longeur de À retourne 2[/php]