[Script] - Tranformation de titre en URL valide

WRInaute discret
Re-Bonjour,

Nouvelle contribution : Vous passez une chaîne de caractère à la fonction GL() et elle vous retourne une chaîne pouvant servir a la création d'une URL pour l'url-rewriting. Je m'en sert aussi bien sur mon site que sur mon forum et elle marche parfaitement :

Ca pourrait être améliorer avec un while et un tableau mais bon !

Code:
function SGMLValid($text) {	
		  $text = str_replace("’", "'", $text); 
		  $text = str_replace("…", "...", $text);
		  $text = str_replace("æ", "ae", $text);
		  $text = str_replace(chr(0), "", $text);
		  $text = str_replace(chr(128), "euros", $text);
		  $text = str_replace(chr(26), "é", $text);
		  return $text; 
}

function GL($c) {
		 $c = str_replace(' ','-', $c);
		 $c = str_replace('\'','-', $c);
		 $c = str_replace('(','-', $c);
		 $c = str_replace(')','-', $c);
		 $c = str_replace('!','', $c);
		 $c = str_replace('?','', $c);
		 $c = str_replace('.','-', $c);
		 $c = str_replace('&','-', $c);
		 $c = str_replace('é','e', $c);
		 $c = str_replace('è','e', $c);
		 $c = str_replace('ê','e', $c);
		 $c = str_replace('à','a', $c);
		 $c = str_replace('â','a', $c);
		 $c = str_replace('ô','o', $c);
		 $c = str_replace('î','i', $c);
		 $c = str_replace('ñ','n', $c);
		 $c = str_replace('û','u', $c);
		 $c = str_replace('ç','c', $c);
		 $c = str_replace(',','-', $c);
		 $c = str_replace('/','-', $c);
		 $c = str_replace(':','-', $c);
		 $c = str_replace('@','-', $c);
		 $c = str_replace('*','-', $c);
		 $c = str_replace('$','-', $c);
		 $c = str_replace('_','-', $c);
		 $c = str_replace('´','-', $c);
		 $c = str_replace('’','-', $c);
		 $c = str_replace('acute;','-', $c);
		 $c = str_replace('amp;','-', $c);
		 $c = str_replace('quot;','-', $c);
		 $c = str_replace('[','-', $c);
		 $c = str_replace(']','-', $c);
		 $c = str_replace(Chr(28),'o', $c);
		 $c = str_replace(Chr(26),'e', $c);
		 $c = str_replace('--','-', $c);
		 $c = str_replace('--','-', $c);
		 $c = str_replace('--','-', $c);
		     
		 if ($c[0] == '-') { 
		 	$c[0] = '';
		 }
		 
		 if ($c[strlen($c)-1] == '-') { 
		 	$c[strlen($c)-1] = '';
		 }
		 
		 if ($c[strlen($c)-1] == '-') { 
		 	$c[strlen($c)-1] = '';
		 }
		 
		 if ($c[strlen($c)-1] == ' ') { 
		 	$c[strlen($c)-1] = '';
		 }

		 return SGMLValid(strtolower($c));
}
 
WRInaute impliqué
Plutôt qu'une longue suite de str_replace, je pense que strtr aurait été beaucoup plus efficace.
 
Discussions similaires
Haut