Url Rewriting
Fonction qui permet de réécrire les URL en remplaçant tous les caractères spéciaux en un tiret (-) et les urls seront sous la forme : ceci-est-mon-url-reecrite
|
|
Code Source
Fonctions du code
: >Remplacement par expression rationnelle - (PHP 4, PHP 5)
: Remplace des caractères dans une chaîne - (PHP 4, PHP 5)
: Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
Commentaires
J'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;
}
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;
}
merci pour l'autre solution !! ca focntionne parfaitement !! la fonction Preg replace est DEPRECATED
heu.. pardon c'est PREGREPLACE qui est deprecated....
Lit corrextement ton message d'erreur, preg_replace() n'est pas dépréciée. C'est ereg_replace() qui l'est.
Nicolas
Nicolas
Une 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;
}
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;
}
une autre solution simplement utiliser urlencode() natif de PHP
Ajouter un commentaire
Librairie PHP
Connexion
URL
PHP
- Affichage (5)
- Applications (9)
- Chaînes (71)
- Classes (29)
- Constantes (4)
- Cookies (3)
- Date-Heure (40)
- Email (14)
- Fichiers - Réps (45)
- Fonctions (23)
- Formulaires (18)
- GD-Graphiques (11)
- Google (13)
- HTML (7)
- Images (21)
- Inclassable (28)
- Maths (24)
- MySQL (23)
- Navigateurs (6)
- Recherches (6)
- Regex (13)
- Reseau (2)
- Sécurité (25)
- Sessions (13)
- Statistiques (5)
- Système (18)
- Tableaux (21)
- Tag-cloud (3)
- Templates (3)
- Twitter (5)
- URL (22)
- Variables (8)
- Vidéos (2)
- Windows (1)
- XML (2)

























