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  
 
   
Rewriting probleme accent sur certains URL avec format_url
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    phpBB SEO » Forum Référencement  » Le Forum phpBB
::  
Auteur Message
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Lun Fév 18, 2008 4:36 pm    Sujet du message: Rewriting probleme accent sur certains URL avec format_url

Bonjour,

Bon voilà j'ai presque terminé le rewriting de l'agrégateur RSS dont j'en ai parlé ICI

Et je l'ai mis en ligne : http://www.unicornis.org/rss-actualites-news.html

Il me manque plus qu'à supprimer les liens vers les pages .php, les duplicates donc.

Sinon voici mon problème pour le moment :

J'ai certains accents qui passent mal à la fonction format_url de phpBBSEO

Code:
   1. function format_url( $url, $type = 'topic' ) {
   2.  $url = strip_tags($url);
   3.  $url = htmlentities($url, ENT_COMPAT, $this->encoding);
   4.  $url = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i","\\1", $url );
   5.  $url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url);
   6.  $url = preg_replace( array("`[^a-z0-9]`i","`[-]+`" ) , "-", $url);
   7.  $url = ( $url == "" ) ? $type : strtolower(trim($url, '-'));
   8.  return $url;
   9. }


exemple :

- Le titre :
Une édition spéciale pour The Witcher
- l'URL :
http://www.unicornis.org/une-dition-sp-ciale-pour-the-witcher-n344.html


Et d'autres qui passent très bien, toujours sur la même page :
- Le titre :
Arecibo découvre le premier système triple d'astéroïdes
- l'URL :
http://www.unicornis.org/arecibo-decouvre-le-premier-systeme-triple-d-asteroides-n345.html


Voici le code qui crée ces liens :

Code:
       $news_url = $phpbb_seo->format_url(smart_utf8_decode($val["titre"])).'-n'.$val["ID"].'.html';
         echo "class=a href='".$news_url;
         } else {
            // si c'est un news à description sélectionnée, stabilote
            if(@$_GET["news"]==$val["ID"]) echo "class=stabilo ";
            // lien vers le site
            echo "target='_blank' href='".$val["lien"];
         }      
         echo "'>".smart_utf8_decode($val["titre"])."</A>
            <i>[".$val["titre2"]."]</i>


Alors ça doit être une histoire d'encodage des caractères, suivant l'encodage des flux RSS. Mais bon tout s'affiche comme il faut dans le texte et les titres de page aussi. Il n'y a que les urls avec le titre injecté (passé sous format_url de phpBB SEO) qui bug...



Et pour les duplicates, comment je peux faire ? J'ai le Zero Duplicate d'installé sur le phpBB déjà comment appliquer le Zero Duplicate ici ?


Merci d'avance pour votre aide.


Dernière édition par freezbee le Mar Fév 19, 2008 5:52 am; édité 2 fois
Revenir en haut de page
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 5:51 am    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Dans le deuxième exemple d'URL que j'ai mis les accents et tilde (é,è,',é,¨,) sont bien remplacés.

Seul certains, provenant de certains Flux RSS ne passe pas bien au format_url.

Et comme je le dis je pense à un problème d'encodage, suivant l'encodage de caractère de certains Flux.

En fait ce sont les Flux RSS de clubic qui passent mal (les titres injectés dans l'URL).
Le flux RSS de futura-science est encodé en UTF-8
celui de PC-Inpact en ISO-8859-1
Et celui de Clubic en ISO-8859-1 je crois ??? Puisque si j'enlève la fonction smart_utf8_decode ça passe bien...

Ce qui est bizarre c'est que les accents sont bien affichés sur la page. C'est seulement dans l'url que ça ne passe pas.
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: 3776

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 10:22 am    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Donc tout d'abord, la méthode format_url peut tout à fait gérer l'utf-8 directement, pour les accents ayant un équivalent en entités html non numérique.

Les problèmes de char-set sont plutôt délicats à bien gérer dans le cas général.

Dans ton cas, tu pourrais dans un premier temps te contenter de faire le trie entre l'utf8 et L'iso-8859-1.

Code:
// http://www.php.net/mb_detect_encoding
function is_utf8($string) {
        return preg_match('%(?:
        [\xC2-\xDF][\x80-\xBF]        # non-overlong 2-byte
        |\xE0[\xA0-\xBF][\x80-\xBF]               # excluding overlongs
        |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}      # straight 3-byte
        |\xED[\x80-\x9F][\x80-\xBF]               # excluding surrogates
        |\xF0[\x90-\xBF][\x80-\xBF]{2}    # planes 1-3
        |[\xF1-\xF3][\x80-\xBF]{3}                  # planes 4-15
        |\xF4[\x80-\x8F][\x80-\xBF]{2}    # plane 16
        )+%xs', $string);
}


Pourrait de servir à tester si l'utf8 est utilisé, pour ensuite configurer le char set de la classe phpbb_seo :
Code:
$phpbb_seo->encoding = "iso-8859-1";


ou :
Code:
$phpbb_seo->encoding = "utf-8";


Juste avant l'appel à format_url, en remettant :
Code:
$phpbb_seo->encoding = "iso-8859-1";

après pour ne pas perturbé le reste du processus (une fois que tu en as finit avec un flux utf8).

C'est certainement beaucoup plus rapide que smart_utf8_decode.

_________________
phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible !
Revenir en haut de page
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 11:59 am    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Merci SeO.

Ca ne fonctionne toujours pas par contre.

Voilà ce que j'ai fait :

Code:

       if (is_utf8($val["titre"])) {
       $phpbb_seo->encoding = "utf-8";
       } else {
       $phpbb_seo->encoding = "iso-8859-1";
       }
       $news_url = $phpbb_seo->format_url($val["titre"]).'-n'.$val["ID"].'.html';
       $phpbb_seo->encoding = "iso-8859-1";



Et le résultat est exactement le même :
Les Flux RSS de Clubic : les titres s'affichent bien (accent et tout), mais le titre injecté dans l'url se retrouve avec les accents remplacés par des tirets -
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: 3776

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 12:08 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Tu utilises bien la dernière version (0.2.4) ?

_________________
phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible !
Revenir en haut de page
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 12:12 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Oui j'ai tout en dernière version pour phpBB2 :

rapport de vérification de version par XS a écrit:

phpBB SEO Advanced mod rewrite MOD 0.2.4 Dernière version utilisée.
phpBB SEO Advanced Zero Duplicate MOD 0.2.2 Dernière version utilisée.
phpBB SEO Dynamic meta tags MOD 0.2.0 Dernière version utilisée.
META TAGS phpBB Annuaire MOD 0.2.0 Dernière version utilisée.
phpBB SEO mx Sitemaps MOD 0.2.2 Dernière version utilisée.
phpBB SEO Optimal Titles MOD 1.0.0 Dernière version utilisée.
SEO URL Simple Subforums MOD 0.2.2 Dernière version utilisée.
SEO URL phpBB Annuaire MOD 0.2.0 Dernière version utilisée.
phpBB SEO Simple Show Bots MOD 0.0.2 Dernière version utilisée.
Revenir en haut de page
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 12:23 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Par contre, j'ai déjà mis le code format_url dans le premier post, mais par rapport à l'original de la version .0.2.4 il a était modifié comme ceci :

Code:
   
function format_url( $url, $type = 'topic' ) {
      $url = 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;
   }


Suite à ce topic : [Réglé] Caractères spéciaux - exotiques
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: 3776

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 12:24 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Bizarre.

Le problème doit être que les é des flux qui ne marchent pas ne sont pas tout à fait bien formés, ou alors qu'ils sont sous la forme d'entités html numériques, tu as vérifié la source du flux qui pose problème ?

A tout hasards, essais avec utf8_decode() pour tout le monde, en ne touchant pas à $phpbb_seo->encoding, mais je doute.

_________________
phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible !
Revenir en haut de page
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 12:29 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

SeO a écrit:

A tout hasards, essais avec utf8_decode() pour tout le monde, en ne touchant pas à $phpbb_seo->encoding, mais je doute.


Oui j'ai déjà essayé, mais ce n'est pas mieux, pire même, que la fonction smart_utf8_decode que voici :

Code:
// utf8_decode déconne parfois :s
function smart_utf8_decode($in_str) {

   
   // Replace ? with a unique string
   $new_str = str_replace("?", "q0u0e0s0t0i0o0n", $in_str);
   // Try the utf8_decode
   $new_str=utf8_decode($new_str);
   // if it contains ? marks
   if (strpos($new_str,"?") !== false) {
      // Something went wrong, set new_str to the original string.
      $new_str=$in_str;
   } else {
      // If not then all is well, put the ?-marks back where is belongs
      $new_str = str_replace("q0u0e0s0t0i0o0n", "?", $new_str);
   }
   $new_str = str_replace("&apos;","'",$new_str); // RC t'es chiant :)

   return $new_str;
}
Revenir en haut de page
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 12:59 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Je viens d'essayer une autre fonction :

Code:

function encodeToIso($string) {
     return mb_convert_encoding($string, "ISO-8859-1", mb_detect_encoding($string, "UTF-8, ISO-8859-1, ISO-8859-15", true));
}



Code:
         $titre_url= encodeToIso($val["titre"]);
       $news_url = $phpbb_seo->format_url($titre_url).'-n'.$val["ID"].'.html';



Et c'est toujours la même chose.
Les Flux RSS de Clubic : les titres s'affichent bien (accents et tout), mais le titre injecté dans l'url se retrouve avec les accents remplacés par des tirets -
Voici le flux en question : http://www.clubic.com/xml/news.xml
Revenir en haut de page
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 1:26 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

SeO a écrit:
ou alors qu'ils sont sous la forme d'entités html numériques, tu as vérifié la source du flux qui pose problème ?


Voilà un exemple d'un titre de la source du Flux :
Code:
Microsoft : des outils de d&#233 ;veloppement gratuits

Edit : j'ai mis un espace entre 233 et ; car sinon ça convertit automatiquement en é.


C'est ça peut être la forme d'entités html numériques ?

Comment faire dans ce cas là ?

Merci.
Revenir en haut de page
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 2:08 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Bon bah voilà j'ai trouvé en cherchant des fonctions :

Code:

function numericentitieshtml($str){
  return preg_replace('/&#(\d+);/e', 'chr(str_replace(";","",str_replace("&#","","$0")))', $str);
}


Code:

$titre_url= smart_utf8_decode($val["titre"]);
$titre_url = numericentitieshtml($titre_url);
$news_url = $phpbb_seo->format_url($titre_url).'-n'.$val["ID"].'.html';


Ceci marche parfaitement : http://www.unicornis.org/rss-actualites-news.html

Very Happy Merci.
Revenir en haut de page
Visiter le site web de l'utilisateur
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Mar Fév 19, 2008 2:12 pm    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Ah oui et maintenant comment puis-je appliquer le Zero Duplicate à tout ça ?
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: 3776

Rewriting probleme accent sur certains URL avec format_urlPosté le: Jeu Fév 21, 2008 9:59 am    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

Et bien, de la même façon que pour phpBB, tu compare l'uri avec l'url que tu es censé avoir, dans ton cas, il n'y a pas l'air d'y avoir de variable en plus, donc, il te suffit de 1) construire l'url complète et de la comparer avec l'uri complète (+ domaine pour être sûr).

Regardes comment c'est fait sur phpBB Wink

_________________
phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible !
Revenir en haut de page
freezbee
PR0
PR0


Inscrit le: 10 Déc 2007
Messages: 69

Rewriting probleme accent sur certains URL avec format_urlPosté le: Jeu Fév 21, 2008 10:04 am    Sujet du message: Re: Rewriting probleme accent sur certains URL avec format_url

SeO a écrit:
Et bien, de la même façon que pour phpBB, tu compare l'uri avec l'url que tu es censé avoir, dans ton cas, il n'y a pas l'air d'y avoir de variable en plus, donc, il te suffit de 1) construire l'url complète et de la comparer avec l'uri complète (+ domaine pour être sûr).

Regardes comment c'est fait sur phpBB Wink


J'ai regardé les codes de Zero duplicate sous phpBB, ainsi que celui pour l'annuaire Genova (qui a l'air plus court et simple). Mais je n'ai rien compris. Crying or Very sad

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  » Le Forum phpBB
Page 1 sur 2 Aller à la page 1, 2  Suivante

Navigation Autres sujets de discussion

Sauter vers: