Texte propre pour une url ?
4 messages
• Page 1 sur 1
- degourdi
- Nouveau WRInaute

- Messages: 4
- Inscription: 22 Fév 2007
Texte propre pour une url ?
Bonjour,
J'ai fais une fonction qui permet de dénuer une chaine de ses caractères spéciaux et autres caractères nuisibles lorsque l'on veut ajouter cette chaine dans une url.
Le problème c'est que ma fonction est vraiment longue et je me demande s'il existe un autre moyen (avec les expressions régulières par exemple) de raccourcir celle-ci :
Merci à vous.
J'ai fais une fonction qui permet de dénuer une chaine de ses caractères spéciaux et autres caractères nuisibles lorsque l'on veut ajouter cette chaine dans une url.
Le problème c'est que ma fonction est vraiment longue et je me demande s'il existe un autre moyen (avec les expressions régulières par exemple) de raccourcir celle-ci :
- Code: Tout sélectionner
function cleanStrForUrl($str)
{
$str = trim($str);
$str = str_replace(' ', '_', $str);
$str = str_replace('\'', '_', $str);
$str = str_replace('-', '_', $str);
$str = str_replace('&', 'et', $str);
$str = str_replace('Á', 'a', $str);
$str = str_replace('á', 'a', $str);
$str = str_replace('Â', 'a', $str);
$str = str_replace('â', 'a', $str);
$str = str_replace('Æ', 'ae', $str);
$str = str_replace('æ', 'ae', $str);
$str = str_replace('À', 'a', $str);
$str = str_replace('à', 'a', $str);
$str = str_replace('Å', 'a', $str);
$str = str_replace('å', 'a', $str);
$str = str_replace('Ã', 'a', $str);
$str = str_replace('ã', 'a', $str);
$str = str_replace('Ä', 'a', $str);
$str = str_replace('ä', 'a', $str);
$str = str_replace('Ç', 'c', $str);
$str = str_replace('ç', 'c', $str);
$str = str_replace('É', 'e', $str);
$str = str_replace('é', 'e', $str);
$str = str_replace('Ê', 'e', $str);
$str = str_replace('ê', 'e', $str);
$str = str_replace('È', 'e', $str);
$str = str_replace('è', 'e', $str);
$str = str_replace('Ë', 'e', $str);
$str = str_replace('ë', 'e', $str);
$str = str_replace('€', 'e', $str);
$str = str_replace('Í', 'i', $str);
$str = str_replace('í', 'i', $str);
$str = str_replace('Î', 'i', $str);
$str = str_replace('î', 'i', $str);
$str = str_replace('¡', 'i', $str);
$str = str_replace('Ì', 'i', $str);
$str = str_replace('ì', 'i', $str);
$str = str_replace('Ï', 'i', $str);
$str = str_replace('ï', 'i', $str);
$str = str_replace('Ñ', 'n', $str);
$str = str_replace('ñ', 'n', $str);
$str = str_replace('Ó', 'o', $str);
$str = str_replace('ó', 'o', $str);
$str = str_replace('Ô', 'o', $str);
$str = str_replace('ô', 'o', $str);
$str = str_replace('?', 'oe', $str);
$str = str_replace('?', 'oe', $str);
$str = str_replace('Ò', 'o', $str);
$str = str_replace('ò', 'o', $str);
$str = str_replace('Õ', 'o', $str);
$str = str_replace('õ', 'o', $str);
$str = str_replace('Ö', 'o', $str);
$str = str_replace('ö', 'o', $str);
$str = str_replace('?', 's', $str);
$str = str_replace('?', 's', $str);
$str = str_replace('Ú', 'u', $str);
$str = str_replace('ú', 'u', $str);
$str = str_replace('Û', 'u', $str);
$str = str_replace('û', 'u', $str);
$str = str_replace('Ù', 'u', $str);
$str = str_replace('ù', 'u', $str);
$str = str_replace('Ü', 'u', $str);
$str = str_replace('ü', 'u', $str);
$str = str_replace('Ý', 'y', $str);
$str = str_replace('ý', 'y', $str);
$str = str_replace('?', 'y', $str);
$str = str_replace('ÿ', 'y', $str);
$str = strtolower($str);
$len = strlen($str);
for ($i = 0; $i < $len; $i++)
{
if (!ereg('[-_0-9a-z]+', $str{$i}))
{
$str = str_replace($str{$i}, '', $str);
$len = strlen($str);
}
}
while(!ereg('[0-9a-z]+', $str{0}))
{
$str = substr($str, 1, $len);
}
$len = strlen($str);
while(!ereg('[0-9a-z]+', $str{$len-1}))
{
$str = substr($str, 0, $len-1);
$len = strlen($str);
}
$str = str_replace('__', '_', $str);
return $str;
}
Merci à vous.
-

Leonick - WRInaute accro

- Messages: 19599
- Inscription: 8 Aoû 2004
- Code: Tout sélectionner
strtr($str,"ÀÁÂÃÄÅàáâãäåÇçÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"AAAAAAaaaaaaCcOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNn");
- dmathieu
- Modérateur

- Messages: 7244
- Inscription: 9 Jan 2004
- Code: Tout sélectionner
$array = array('à' => 'a', 'é' => 'e', 'è' => 'e');
strtr($str, $array);
Plus lisible
-

phpmikedu83 - WRInaute passionné

- Messages: 1281
- Inscription: 6 Aoû 2005
kazhar a écrit:
- Code: Tout sélectionner
$array = array('à' => 'a', 'é' => 'e', 'è' => 'e');
strtr($str, $array);
Plus lisible
Avec le retour à la ligne de leonick, c'est tout aussi lisible...
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Texte dans un lien : même poids qu'un texte seul ?
- Utiliser texte défilant (scroll) pour texte?
- Rewriting propre !! help me
- texte seul ou texte et images
- De ma propre main
- Moyen de recherche plus propre
- Cloacking propre en javascript
- Faire sa propre affiliation...?
- Que l'URL propre apparaisse !!
- [Etre sa propre régie]
- submitwolf se fait sa propre liste ?
- filtrer son propre site
- BL sur son propre site?...
- BL issus de mon propre site
- AOL a son propre spider ?
- Xinhua et China Mobile pour un nouveau moteur de recherche chinois - 17-08-2010
- Microsoft Fremont : contre Google Base et eBay ? - 30-11-2005
- Parrainages AdSense sous forme de liens texte - 21-04-2006
- La mise à jour du mois d'avril - 28-04-2002
- Privilégier le texte au contenu multimédia : conseil n°9 en référencement - 04-08-2008
- Google veut référencer les livres - 31-10-2003
- Optimiser le nombre de mots dans les textes de liens - 03-10-2005
- Google attaqué en justice - 22-10-2002
- Transformer des simples citations de votre site en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink). - Indice de densité
Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
