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  
 
   
Enlever les accents, majuscules...

 
Poster un nouveau sujet   Répondre au sujet    phpBB SEO » Forum Référencement  » mod rewrite Apache
::  
Auteur Message
nelumbo
PR1
PR1


Inscrit le: 06 Mar 2007
Messages: 186

Enlever les accents, majuscules...Posté le: Dim Juin 17, 2007 8:06 am    Sujet du message: Enlever les accents, majuscules...

Bonjour,

J'ai besoin d'un petit coup de main pour récupérer une réécriture d'url.

J'affiche quelques liens:

Code:
<?php
 // connection a la base
 $bdd5 = mysql_connect("############);
 // selection de la base
 mysql_select_db("########", $bdd5);
// Mes 5 derniers liens
$sql4 = mysql_query("SELECT name, id FROM jardin_link ORDER BY id DESC", $bdd5);
//envoi de la requete
while($affichage = mysql_fetch_array($sql4, MYSQL_ASSOC)){
 echo "<li><a href=\"",($affichage['name']).'-s-'.$affichage['id'].'.html',"\">",$affichage['name'], "</a></li>";
}
mysql_close($bdd5);
?>


Ce qui donne un lien du type:

- ../Le%20purin%20d'orties%20aux%20orties-s-9.html

Alors qu'il me faudrait:

- ../purin-dorties-aux-orties-s-9.html

j'ai récupéré le code permettant de nettoyer tout ça, mais je ne sais pas l'assembler.

Code:
function code_url($string)
   {
      $words = explode(' ',$string);
      $min_length = 3;
      $cleaned_words = array();
      foreach($words as $word)
      {
         if(strlen($word) >= $min_length)
         {
            $word = strtolower($word);
            $word = str_replace(',','', $word);
            $word = str_replace('\'','', $word);
            $word = str_replace(':','', $word);
            $word = str_replace(';','', $word);
            $word = str_replace("( |')", "-", $word);
            $accent = array('â','à','é','è','ê','î','ô','û','ç',"'");
            $sans_accent = array('a','a','e','e','e','i','o','u','c','');
            $word = str_replace($accent, $sans_accent, $word);
            $word = eregi_replace("[^a-z0-9]","-",$word);
            $word = eregi_replace("(^(_)*|(_)*$)","",$word);
            $word = eregi_replace("(-){2,3}","",$word);
            $word = eregi_replace("([0-9])*","",$word);
            
            $cleaned_words[] = $word;
         }
      }
      $cleaned_string = implode('-',$cleaned_words);
      
      return $cleaned_string;
   }


Confused

_________________
Rencontre gratuit || Petite annonce gratuite
Revenir en haut de page
Visiter le site web de l'utilisateur
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14279

Enlever les accents, majuscules...Posté le: Dim Juin 17, 2007 10:01 am    Sujet du message: Re: Enlever les accents, majuscules...

Le mieux serait, je pense d'utiliser la classe phpbb_seo, la méthode format_url() fait déjà ça pour les url du forum, bien plus rapidement que le code que tu proposes.

Emplois :

Code:
$titre_url = $phpbb_seo->format_url($titre_brut, 'valeur_par_defaut');


valeur_par_defaut étant la valeur que prendrait une URL dont le résultat du formatage du titre serait vide, dans le cas d'un titre comme "Горбачёв" par exemple.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
nelumbo
PR1
PR1


Inscrit le: 06 Mar 2007
Messages: 186

Enlever les accents, majuscules...Posté le: Dim Juin 17, 2007 10:13 am    Sujet du message: Re: Enlever les accents, majuscules...

Z'ai rien compris Sad

Le hic, c'est qu'il me faut le meme formatage d'url pour éviter les doublons.

_________________
Rencontre gratuit || Petite annonce gratuite
Revenir en haut de page
Visiter le site web de l'utilisateur
nelumbo
PR1
PR1


Inscrit le: 06 Mar 2007
Messages: 186

Enlever les accents, majuscules...Posté le: Dim Juin 17, 2007 2:57 pm    Sujet du message: Re: Enlever les accents, majuscules...

Bon, c'est un début:

J'arrive à faire ça :

-http://www.lanature.fr/visite-jardin/l'eau-si-precieuse---s-7.html

Il faudrait :

-http://www.lanature.fr/visite-jardin/leau-precieuse-s-7.html

Code:
$url= $affichage['name'];
$url = strtr($url, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$url = strtr($url, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz');
$url = strtr($url, ',!?";:', '      ');
$url = strtr($url, ' ', '-');


Mais les - s'accumulent autant de fois qu'il y a de caractères à changer. Comment y remédier ? Comment supprimer l'apostrophe sans le remplacer ?
Comment indiquer une liste de mot à ne pas inclure dans l'url ?

_________________
Rencontre gratuit || Petite annonce gratuite
Revenir en haut de page
Visiter le site web de l'utilisateur
nelumbo
PR1
PR1


Inscrit le: 06 Mar 2007
Messages: 186

Enlever les accents, majuscules...Posté le: Lun Juin 18, 2007 7:49 pm    Sujet du message: Re: Enlever les accents, majuscules...

Re, ça progresse. J'ai fait du large dans mon script. Je ne suis plus obligé de garder le meme format d'url.

Un dernier truc me titille, c'est pas bien grave mais... Lorsque mon url se termine par un "?" ou "!" il y a un espace entre qui est comblé par un "-".

Exemple:

Les plantes, antibiotiques naturels ?

donne :

les-plantes-antibiotiques-naturels--s-12.html

Le dernier tiret m'embête Shocked

J'ai rajouté ça, mais rien ne change. Une idée ?
Code:
  if ($titre_url[count($titre_url)-1] == '-')
   {
   $titre_url[count($titre_url)-1] = '';
   }

_________________
Rencontre gratuit || Petite annonce gratuite
Revenir en haut de page
Visiter le site web de l'utilisateur
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14279

Enlever les accents, majuscules...Posté le: Lun Juin 18, 2007 9:45 pm    Sujet du message: Re: Enlever les accents, majuscules...

Mais bon sang Smile regarde le code de la fonction format_url() dans phpbb_seo_class.php, il fait tout ce que tu demandes en plus stable et plus rapide.

Après, ça dépends, si ton site partage les sessions phpBB, tu as directement accès à la méthode, si non, il faut soit inclure la classe, soit bricoler à partir de ça.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
nelumbo
PR1
PR1


Inscrit le: 06 Mar 2007
Messages: 186

Enlever les accents, majuscules...Posté le: Mar Juin 19, 2007 6:21 pm    Sujet du message: Re: Enlever les accents, majuscules...

T'as eu le dernier mot Wink

Les plantes, antibiotiques naturels ?

=

les-plantes-antibiotiques-naturels-s-12.html

Thanks Very Happy

_________________
Rencontre gratuit || Petite annonce gratuite
Revenir en haut de page
Visiter le site web de l'utilisateur
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14279

Enlever les accents, majuscules...Posté le: Ven Juin 22, 2007 11:50 am    Sujet du message: Re: Enlever les accents, majuscules...

Wink

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
Revenir en haut de page
Visiter le site web de l'utilisateur
blaugrana



Inscrit le: 10 Juil 2006
Messages: 11

Enlever les accents, majuscules...Posté le: Jeu Aoû 09, 2007 9:44 pm    Sujet du message: Re: Enlever les accents, majuscules...

Bonsoir tout le monde j'ai un problème similaire.
J'aimerais utiliser la function format_url pour un de mes sites web mais impossible de l'utiliser.

Code:
   // --> URL rewriting functions <--
   /**
   * Prepare Titles for URL injection
   */
   function format_url( $url, $type = 'topic' ) {
      $url = preg_replace("`\[.*\]`U","",$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;
   }


Voici mon lien.
Code:
<a title="<?php echo stripslashes($donnees['titre']); ?>" href="news-<?php echo $donnees['id']; ?>-<?php echo format_url($donnees['titre']); ?>">Lire l'article complet...</a>


Voici l'erreur que j'obtiens :

Fatal error: Using $this when not in object context in

Un grand merci d'avance Wink

_________________

FC Barcelona - Fans
Revenir en haut de page
Visiter le site web de l'utilisateur
dcz
Administrateur - Site Admin
Administrateur - Site Admin


Inscrit le: 28 Avr 2006
Messages: 14279

Enlever les accents, majuscules...Posté le: Dim Aoû 12, 2007 11:03 am    Sujet du message: Re: Enlever les accents, majuscules...

C'est parce que c'est une méthode dans une classe, et que telle quelle tu dois l'utiliser dans la classe phpbb_seo.

Pour l'utiliser en dehors de la classe, en tant que fonction, il faut juste remplacer $this->encoding par l'encodage de ton jeux de caractères, 'iso-8859-1' dans ton cas selon toutes vraisemblances.

++

_________________
Useful links :
SEO Forum || SEO Directory || SEO phpBB || SEO phpBB3 || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Référencement phpBB3 || Recherche
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 Apache
Page 1 sur 1

Navigation Autres sujets de discussion

Sauter vers: