Bonjour a tous,

j'ai une fonction qui permet de remplacer les accents et enlever les caractères spéciaux d'une chaine de caractère. Elle fonctionne a merveille, sauf que ça bug lorsqu'il y a cet apostrophe ’ au lieu de ', il me le remplace par la lettre 'r' au lieu de '-'. sauriez vous pour quelle raison et comment résoudre ce problème??
j'ai rajouté cet apostrophe dans la liste des caractères a remplacer par '-' (ligne 5) mais ça ne marche pas

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function clean_string($string) {
	$string = strtolower(trim($string));
 
	// escape first the unescaped elements by mb_convert_encoding ('\'', '"', and '&')
	$string = preg_replace("#[ ,.;:'%&()\-\"]+#", "-", $string);
	$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');
 
	// replace accents
	$string = preg_replace(array('/ß/', '/&(..)lig;/', '/&([aouAOU])uml;/', '/&(.)[^;]*;/'), array('ss', "$1", "$1".'e', "$1"), $string);
 
	// replace all special characters except '-'
	$string = preg_replace("/[^a-z0-9-]/i", '-', $string);
 
	return $string;
}
Merci par avance