Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Encodage d'url [ Divers / Général ] (MadM@tt)

dimanche 20 avril 2008 à 21:55:08 | Encodage d'url

MadM@tt

Membre Club
Bonjour à tous,

Voilà j'ai une table pleine d'adresses URL : les adresse URL que mon site.
Par exemple si un internaute demande la page www.monsite.com/search.php?s=hello
ben ça va l'ajouter à ma table.

Mon problème, c'est que ma table est pleine d'url non encodée (les accents, caractères spéciaux etc... ne sont pas encodé en caractères html ou autres).

Maintenant, je veux utiliser ces adresses pour générer mon sitemap. Mais si je fais un simple 'echo' de toutes ces adresses, ben ça plante : les accents (et autres caractères spéciaux) ne sont pas encodés.
Que faire pour encoder une adresse, sachant que urlencode et rawurlencode vont me coder mes / ou - ou = ou & etc... en %quelque chose.
C'est pas logique : urlencode on lui passe une url, et il ressort quelque chose qui n'est pas une URL, je comprend pas à quoi sert cette fonction... Moi je veux juste coder les accents et caractères spéciaux (espaces etc...), la meme chose qui se passe quand dans la barre d'adresse du navigateur on tape un accent, c'est encodé.

Merci si vous avez des solutions

- MadMatt -

 www.choisir-une-entreprise.com


dimanche 20 avril 2008 à 23:04:58 | Re : Encodage d'url

Evangun

Hello,

mettre un accent dans la barre d'url n'empêche pas de tomber sur la page normalement.
Ton problème ne viendrait pas plutôt du fait que les url sont stockées en utf8 et que tu les affiches en iso, ou inversement ?

Si tu n'y arrives pas, un exemple concret de ton problème serait le bienvenu.
Cecit dit et pour conclure, c'est à toi aussi de t'assurer si possible qu'il n'y a pas d'espace et de caractère spécial dans ton url.

à+

lundi 21 avril 2008 à 00:05:50 | Re : Encodage d'url

yoman64

Membre Club
Salut,

Je ne vois pas en quoi c'est illogique, si tu avais pris la peine de lire la documentation tu verrais bien que ces fonctions la ne sont pas destinés à encoder une url entière, mais une partie (par exemple un argument) afin d'éviter des problèmes ;)
Voir: [ Lien ]

Ensuite pour ton problème il y a deux solutions (à ma connaissance):
Soit tu encode bien avec urlencode, mais après avec un str replace tu remplace les %... qui représente les slashes par un vrai slash, idem pour tous les autres chars.

Sinon tu dois utiliser htmlentities qui va convertir tes accents en entitées html(et les & en &, comme ça pas de mélange d'arguments), du coup tes urls vont être correctes.


Mais comme dit Evangun, dans une url on essait le plus possible de ne pas mettre d'accents ou d'espace...

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

lundi 21 avril 2008 à 00:49:24 | Re : Encodage d'url

MadM@tt

Membre Club
Ben j'ai regardé pour etre certain : mes tables sont en ISO, et ma page générée est en UTF8, car il s'agit de générer un sitemap, donc pour que google l'accepte il faut que ça soit un fichier XML en UTF8.

Et comme les utilisateurs peuvent rechercher des mots avec des accents, ben la chaine cherchée est passée en parametre GET, donc dans l'url, donc j'ai pas trop le choix au niveau du format des adresses URL, ça peut etre n'importe quoi.

Seulement comme il s'agit d'un fichier sitemap, les adresses ne doivent pas etre encodées comme dans une page web (avec htmlentitites) si je ne me trompe pas ? Pas de & ? Il faut qu'elle soient codées comme dans la barre d'adresse du navigateur ?
(j'avoue que je suis un peu perdu sur ce point)

En fait on peut résumer le problème comme ça :
j'ai des adresses "brutes" (non encodées) et je doit les placer dans mon sitemap, comment les encoder ?
(du moins y'a t'il une méthode moins "bourrine" que de faire des str_replace sur les caractères spéciaux ?)

Merci !

- MadMatt -

 www.choisir-une-entreprise.com


lundi 21 avril 2008 à 00:57:31 | Re : Encodage d'url

MadM@tt

Membre Club
Arf et y'a un truc que je comprend pas, c'est quand moi je fais une recherche sur le site
(je vous le donne si vous voulez regarder :
http://www.choisir-une-entreprise.com/annuaire.php
et le sitemap :
http://www.choisir-une-entreprise.com/sitemap.xml
)

ben si je recherche "hé", ça va enregistrer "www.choisir-une-entreprise.com/annuaire.php?s=h%E9" dans la BDD, c'est bien.
Mais pourquoi alors y'a des entrées ou les espaces sont codés, et pas les accents.
Par exemple j'ai des adresses :
http://www.choisir-une-entreprise.com/annuaire.php?s=énergie%20renouvelable
Alors que si moi je fais la recherche ben ça m'encode bien l'accent (dans la barre de recherche du navigateur ET dans la BDD), ça vient du navigateur ça ?

Merci pour votre aide

- MadMatt -

 www.choisir-une-entreprise.com


lundi 21 avril 2008 à 01:44:02 | Re : Encodage d'url

yoman64

Membre Club
Salut,

Pour le sitemap je ne peux pas t'aider, j'en sais rien de ce qui est accepté ou pas.
Pour ta deuxième question oui ça vient du navigateur, certain encode selon la RFC 1738 et d'autres non. J'ai déja remarqué ce genre d'incohérence moi aussi, c'est ça quand un navigateur respecte pas les fameux standards

Moi je ferais ça à grand coup de str_replace Ou j'isolerais les arguments de l'url et je les encoderait un par un avant de reconstruire l'url. Mais cela dit je vais suivre ce topic avec intérêt parce qu'il est pas impossible (mais bon c'est peu probable) qu'une fonction php existe déja pour faire ça...

Avant de passer ça dans ta base de données à l'avenir tu devrais passer tout tes arguments à urlencode et reconstruire ton url, ça va t'éviter ce genre de problèmes..

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

lundi 21 avril 2008 à 22:15:56 | Re : Encodage d'url

MadM@tt

Membre Club
Avant de passer ça dans ta base de données à l'avenir tu devrais passer tout tes arguments à urlencode et reconstruire ton url, ça va t'éviter ce genre de problèmes..

Oui effectivement, c'est plus judicieux, mais j'avais aucune idée de cette problématique avant de réaliser ce script, donc je me suis un peu fait avoir :-p

Pour ta deuxième question oui ça vient du navigateur, certain encode selon la RFC 1738 et d'autres non. J'ai déja remarqué ce genre d'incohérence moi aussi, c'est ça quand un navigateur respecte pas les fameux standards

Arf... Et y'a pas moyen de détecter l'encodage ?

Bon ben je crois que ça va être plein de str_replace de partout, si quelqu'un a une meilleure idée qu'il me fasse signe
Merci

- MadMatt -

 www.choisir-une-entreprise.com


lundi 21 avril 2008 à 22:33:34 | Re : Encodage d'url

yoman64

Membre Club
Pour infos str_replace prends en arguments des arrays, donc un seul str_replace suffierait Mais moi ce que j'aimerais c'est d'avoir l'avis de codefalse, coucou747(tien, dans une de ses sources justement il utilisait str_replace pour ça), neigedhiver ou malalam par exemple. Cela dit je n'ose pas les "déranger" pour ça, mais je t'invite à leurs envoyés un MP, si quelqu'un à la bonne solution, c'est bien l'un d'eux

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  



Cette discussion est classé dans : table, url, adresse, caractères, adresses


Répondre à ce message

Sujets en rapport avec ce message

problèmes caractères spéciaux. [ par masseur ] Salut.Dans un de mes scripts je fait ceciecho "$url = $_GET['url']"; sachant que l'url que je passe dans mon navigateur est celle ci;http://news.searc Adresse URL de provenance des visiteurs [ par bmag ] Bonjour,J'ai besoin de récupérer l'adresse URL de provenance des visiteurs sur la page d'accueil de mon site.Pour cela j'ai testé $HTTP_REFERER, $_SER Adresse IP [ par MiTcH37 ] bijour,j'ai un visiteur sur mon site qui change tout le temps d'IP :64.68.81.14564.68.81.14064.68.81.14164.68.81.16764.68.81.19464.68.81.15164.68.81.1 Unicode ? [ par GRenard ] YoComme tout est dans le titre, je vais rajouter quand même des précisions... Ok je connais le site officiel, mais il n'y aurais pas un moyen rapide l garder une url defini dans la barre d'adresse [ par vsss ] BonjourJe voudrai savoir si c'est possible de definir une Url dans la barre d'adresse, car j'ai un nom de domain www.adresse.com , mais qui change qua récup var d'url [ par skaterboss2000 ] bonjoursi j'ai une table comme ceci : |MA BDD| |MA TABLE| [id] [autrechamps] comment faire pour afficher le contenu de autrechamps en fonction de l'id découper une Adresse URL [ par kangoo75 ] Bonjour, j'aimerais savoir comment récuperer les parametres d'une URL d'une page courante ( c'est à dire la page ou je lance le script), par exemple s recuperation d'une adresse [ par Vankiel ] bonjour,voila j'ai besoin de recuperer ce qui ce trouve apres le '?' dans une URL pour reintegrer les valeurs des variables dans une page html.je ne p caractères bizarres [ par ralinis ] salut, actuellement j'ai un grand problème.j'ai une base mysql avec des tables que je rempli.Je constate que d'abord après ouverture d'une table, y a récupérer une url aprés un url redirigé [ par pebayart ] Bonjour tout le monde,J'ai une colle, je cherche depuis plusieurs jours et je ne trouve pas.Voilà, c'est peu être tout simple.Admettons que $url est u


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,27 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.