Bonjour chers amis,

J'ai besoin de vos lumières pour améliorer cette fonction qui me permets de réécrire des liens. En gros, sur un site de news, je transmets le titre de la news à cette fonction qui en fait un lien lisible pour Google. Seulement voilà, cette fonction laisse passer les / dans le titre et aussi les : . J'ai essayé de les rajouter mais pas moyen.

Merci de votre aide.

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
16
17
18
19
20
21
22
23
24
25
 function supprAccents($str = null, $encoding = 'UTF-8') 
 {
	if (!is_string($str)) 
	{
		return false;
	}
	/* transformer les caractères accentués en entités HTML */
	$str = htmlentities($str, ENT_NOQUOTES, $encoding);
 
	/* remplacer les entités HTML pour avoir juste le premier caractère non accentué
	 * Exemple : "&ecute;" => "e", "&Ecute;" => "E", "Ã " => "a" ... */
	$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
 
	/* remplacer les ligatures tel que : Œ, Æ ... 
	  Exemple "Å“" => "oe" */
	$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
	/* Supprime les espaces */
	$str = preg_replace('/\s/', '-', $str);
	/* Supprimer tout le reste */
	$str = preg_replace('#&[^;]+:;#', '', $str);
	$str = preg_replace('#\'#', '-', $str);
	$str = strtolower($str);
 
	return $str;
}