URL SEO friendly et codage de caractères (PHP)
4 messages
• Page 1 sur 1
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
URL SEO friendly et codage de caractères (PHP)
Hello,
J'ai une petite appli de création de contenu faite maison (en passant par FCK Editor).
J'aimerais générer des urls propres en me basant sur le titre de la page créée (comme les urls des posts WRI).
En théorie tout devrait marcher, mais les caractères spéciaux ne passent pas...
J'utilise cette fonction avant d'injecter les tirets et de traiter les doublons:
Mais si je lui passe "Mémé aime les crêpes", j'obtiens "mr aime les crrs"
La variable est passée en POST... vraiment je ne comprends pas...
J'ai une petite appli de création de contenu faite maison (en passant par FCK Editor).
J'aimerais générer des urls propres en me basant sur le titre de la page créée (comme les urls des posts WRI).
En théorie tout devrait marcher, mais les caractères spéciaux ne passent pas...
J'utilise cette fonction avant d'injecter les tirets et de traiter les doublons:
- Code: Tout sélectionner
function normaliza($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strtolower($string);
return utf8_encode($string);
}
Mais si je lui passe "Mémé aime les crêpes", j'obtiens "mr aime les crrs"
La variable est passée en POST... vraiment je ne comprends pas...
- sun location
- WRInaute discret

- Messages: 109
- Inscription: 14 Déc 2006
Re: URL SEO friendly et codage de caractères (PHP)
Essaye d'utiliser des fonctions plus puissantes en terme de remplacement comme ereg_replace ou preg_replace !
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
Re: URL SEO friendly et codage de caractères (PHP)
OK !
Après avoir testé toutes les possibilités, DANS MON CAS, voici la fonction qui marche:
Ce qui veut dire que la chaîne passée était bien en UTF-8 mais c'est le pattern $a qui ne l'était pas. Et forcément, encoder une chaîne UTF-8 en UTF-8 ça ne donne rien de bon...
Après avoir testé toutes les possibilités, DANS MON CAS, voici la fonction qui marche:
- Code: Tout sélectionner
function normaliza4($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
$string = $string;
$string = strtr($string, utf8_decode($a), $b);
$string = strtolower($string);
return utf8_encode($string);
}
Ce qui veut dire que la chaîne passée était bien en UTF-8 mais c'est le pattern $a qui ne l'était pas. Et forcément, encoder une chaîne UTF-8 en UTF-8 ça ne donne rien de bon...
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [Script PHP] Fonctions pour créer un slug (SEO friendly URL)
- [dé]codage de caractères spéciaux dans les URL
- - vs _ dans l'url, caractères google friendly ...
- Widget SEO friendly
- liens SEO friendly
- liens d'affiliation SEO friendly
- Magento - Bilan : SEO friendly ou pas ?
- Firefox et codage de caractères
- Caractères accentués et codage HTML
- Codage des caractères accentués
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
