Index
Forums
Annuaire
Référencement
Télécharger
  phpBB SEO : Référencement Google, MSN, Yahoo, Annuaires, Forums  
phpBB SEO
Boards
Directory  
SEO  
Downloads
 
  Rechercher Search
    S'enregistrer
Pseudo :  Passe :  Auto  
Register  
 
   
[Réglé] Caractères spéciaux - exotiques

 
Poster un nouveau sujet   Répondre au sujet    phpBB SEO » Forum Référencement  » mod Rewrite phpBB  » mod Rewrite Avancé
::  
Auteur Message
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

[Réglé] Caractères spéciaux - exotiquesPosté 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
Code:
deg-deg


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
Visiter le site web de l'utilisateur
SeO
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 15 Mar 2006
Messages: 3128

[Réglé] Caractères spéciaux - exotiquesPosté 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 Wink

_________________
Revenir en haut de page
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

[Réglé] Caractères spéciaux - exotiquesPosté 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
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

[Réglé] Caractères spéciaux - exotiquesPosté 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
Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    phpBB SEO » Forum Référencement  » mod Rewrite phpBB  » mod Rewrite Avancé
Page 1 sur 1

Navigation Autres sujets de discussion

Sauter vers: