| |
|
| :: |
| Auteur |
Message |
freezbee PR0

Inscrit le: 10 Déc 2007 Messages: 69
|
Posté le: Lun Déc 10, 2007 3:30 pm Sujet du message: [Réglé] Caractères spéciaux - exotiques |
|
|
Bonjour,
J'ai des caractéres spéciaux qui ne sont pas bien virés dans l'URL rewriting.
exemple : ça (¯`·.¸¸.-> sa me donne | Code: | | macr-middot-cedil-cedil-gt |
et ça °•°• sa me donne
en ayant rajouté => strip_tags($url) :
| Code: | function format_url( $url, $type = 'topic' ) {
$url = preg_replace("`\[.*\]`U","", strip_tags($url) );
$url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url);
$url = htmlentities($url, ENT_COMPAT, $this->encoding);
$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; |
Par contre avec l'ancienne fonction "format_url", tous les caractères spéciaux étaient éliminés.:
| Code: | function format_url( $url, $type = 'topic' ) {
$url = preg_replace("(\[.*\])U","",$url);
$find = array('"','&','<','>','\r\n','\n',);
$url = str_replace ($find, '-', $url);
$url = str_replace ('ß', 'ss', $url);
$url = str_replace (array('ö','Ö'), 'oe', $url);
$url = str_replace (array('ä','Ä'), 'ae', $url);
$url = str_replace (array('ü','Ü'), 'ue', $url);
$find = "ÀÁÂÃÅàáâãåÒÓÔÕØòóôõøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛùúûÿÑñ";
$replace = "aaaaaaaaaaooooooooooeeeeeeeecciiiiiiiiuuuuuuynn";
$url = strtr($url,$find,$replace);
$url = strtolower($url);
$url = ereg_replace("[^a-zA-Z0-9]", "-", $url);
$url = preg_replace("`([\-])+`", "\\1", $url);
$url = trim($url, '-');
$url = ( $url == "" ) ? $type : $url;
return $url;
} |
|
Dernière édition par freezbee le Lun Déc 10, 2007 4:17 pm; édité 2 fois |
|
| Revenir en haut de page |
|
 |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3128
|
Posté le: Lun Déc 10, 2007 3:35 pm Sujet du message: Re: [Réglé] Caractères spéciaux - exotiques |
|
|
Je crois bien que de déplacer :
| Code: | | $url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url); |
après :
| Code: | | $url = htmlentities($url, ENT_COMPAT, $this->encoding); |
suffit  |
_________________
|
|
| Revenir en haut de page |
|
 |
freezbee PR0

Inscrit le: 10 Déc 2007 Messages: 69
|
Posté le: Lun Déc 10, 2007 3:54 pm Sujet du message: Re: [Réglé] Caractères spéciaux - exotiques |
|
|
Exact ! Merci .
Mais maintenant ce sont les accents é è ê à etc... qui sont remplacé par un - |
|
|
| Revenir en haut de page |
|
 |
freezbee PR0

Inscrit le: 10 Déc 2007 Messages: 69
|
Posté le: Lun Déc 10, 2007 4:07 pm Sujet du message: Re: [Réglé] Caractères spéciaux - exotiques |
|
|
c'est bon j'ai trouvé, il suffisait de le descendre encore d'une ligne, c'est à dire après la ligne :
| Code: | $url = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i","\\1", $url );
|
Ce qui donne au final :
| Code: | function format_url( $url, $type = 'topic' ) {
$url = preg_replace("`\[.*\]`U","", strip_tags($url) );
$url = htmlentities($url, ENT_COMPAT, $this->encoding);
$url = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i","\\1", $url );
$url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url);
$url = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $url);
$url = ( $url == "" ) ? $type : strtolower(trim($url, '-'));
return $url; |
Et là tout à l'air d'être bon.
Encore Merci. |
|
|
| Revenir en haut de page |
|
 |
|
| Navigation |
Autres sujets de discussion |
|
|
|
|
|
|
|