04 Sept 2019
15 Aout 2007
15 Aout 2007
Urlrewriting basique - Réécriture des urls
Compatibilité : PHP 5, PHP 7, PHP 8
Fonction simple qui réécrit une url en friendly url. Cette fonction ne prend pas en compte les caractères spéciaux.
Invité
07 Déc 2010 à 02:45une autre solution simplement utiliser urlencode() natif de PHP
Invité
21 Oct 2010 à 11:35Une autre version à jour et simplifiée / commentée : function url_rewrite($url)
{
// Mise en minuscule
$url = strtolower($url);
//On supprime les accents
$url = strtr($url, 'àáâãäåòóôõöøèéêëçìíîïùúûüÿñ', 'aaaaaaooooooeeeeciiiiuuuuyn');
// On supprime les caractères spéciaux, ponctuation, ...
$url = preg_replace('#[;,.:/()<>=+*?!'"[] ]#', '-', $url);
// On remplace les tirets multiples qui se suivent par un seul tiret
$url = preg_replace('#-{2,}#', '-', $url);
// Renvoi url rewritée
return $url;
}
Nicol@s
08 Oct 2010 à 02:00Lit corrextement ton message d'erreur, preg_replace() n'est pas dépréciée. C'est ereg_replace() qui l'est.
Nicolas
Invité
17 Juin 2010 à 23:06heu.. pardon c'est PREGREPLACE qui est deprecated....
Invité
17 Juin 2010 à 23:05merci pour l'autre solution !! ca focntionne parfaitement !! la fonction Preg replace est DEPRECATED
Mikaweb
24 Aout 2007 à 13:44J'ai plus simple ;)
function format_url( $url, $type = '' ){
$url = preg_replace("`\[.*\]`U","",$url);
$url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url);
$url = htmlentities($url, ENT_COMPAT);
$url = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i","\\1", $url );
$url = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $url);
$url = ( $url == "" ) ? $type : strtolower(trim($url, '-'));
return $url;
}