IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[accents] Encodage des url


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut [accents] Encodage des url
    Bonjour,

    J'ai besoin de passer des noms de fichiers avec accents par url, et j'utilise urlencode pour ce faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $url_path = urlencode($path);
    $url_file = urlencode($file);
    echo "<a href='selectedimage?path=$url_path&amp;file=$url_file'></a>";

    J'ai donc un lien qui ressemble à ça, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mapage/selectedimage?path=.%2Frepertoire%2Fsousrepertoire&file=B%E9n%E9dict.png
    Je décode ensuite simplement avec urldecode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $path = urldecode($_GET['path']);
    $file = urldecode($_GET['file']);
    echo "<img src='$path/$file' alt='image introuvable' />";
    ça fonctionne très bien avec Firefox, mais ça ne fonctionne pas avec IE6, IE7, Opera et Konqueror. Je n'en ai pas essayé d'autres.

    J'ai essayé avec rawurlencode/rawurldecode et base64_encode/base64_decode. Ca fonctionne toujours très bien avec Firefox et pas du tout avec les autres.

    Que dois-je faire pour que tous les navigateurs comprennent ?

  2. #2
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    & si tu faisais un str_replace() ?
    à par ça je vois pas...

  3. #3
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Lis la note de cette page, ça pourrait t'avancer : http://fr.php.net/urlencode

    PS : tes 2 echos sont vraiment vilains (particulièrement le premier, je vois pas comment il peut marcher ??) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="selectedimage?path='.$url_path.'&amp;file='.$url_file.'">'.$url_file.'</a>'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="'.$path.'/'.$file.'" alt="image introuvable" />';

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 71
    Par défaut
    Effectivement, il y avait une erreur dans le premier code que j'avais présenté. Je me suis trompé en simplifiant la ligne "echo" pour vous la présenter. J'ai corrigé l'erreur. Mes lignes "echo" sont plus compliquée que ça en vérité.

    [ sinon, je trouve mon code plus lisible que le tien ]

  5. #5
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Citation Envoyé par MorganStern
    [ sinon, je trouve mon code plus lisible que le tien ]
    Oui mais les miennes sont conformes au W3C au niveau du HTML (oui, les valeurs des attributs sont entre doubles quotes et non entre simple quote) et elles sont plus rapides que les tiennes (car utilisation des simples quotes et concaténations au lieu des doubles quotes contenant des variables ce qui contraint le serveur à lire le contenu des chaines de caractères afin de pouvoir interpréter les variables contenues à l'intérieur)

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Par défaut
    Euuh on va faire plus simple, oublie complètement les accents dans les URLs car les serveurs WINS(voir P.S.) ne vont pas trop aimer les accents, et généralement les navigateurs aussi n'aime pas non plus, car les accents n'étant pas utilisé dans tous les pays ils ne sont alors pas interprétés par défaut, franchement je te conseil de les oublier.

    P.S. : Les serveurs WINS sont en fait des serveurs qui relient une URL à une addresse IP, par exemple quand tu entre 'www.google.fr' ou même 'google.fr' dans ton navigateur, ce dernier va alors demander à un serveur WINS l'IP associée à ce nom d'URL s'il existe et te le retourner ( en fait tous les sites du monde entier n'existe pas en tant que lettre(adresse) mais en tant qu'IP ), et généralement ces serveurs la sont sous UNIX(ou LINUX) et ne prennent pas en compte les accents (installation et administration avec l'encodage de caractère anglais, donc sans accents) donc tu risque surtout d'avoir d'énormes problèmes en mettant tes URL ou nom de fichier avec des accents . En gros si tu connais l'addresse IP d'un site, tu peut l'entrer directement dans ta barre d'addresse pour y accéder, de ce fait tu ne passera par aucun serveur WINS, donc ce sera plus rapide, un peu comme quand tu entre 192.168.1.1 pour accéder à la configuration de ton modem/routeur.

    Pour exemple !!! : essaye de mettre comme addresse internet http://66.102.9.99/ tu arrivera sur google, sur un serveur situé à dublin en irlande, et ce sans passer par un serveur WINS car tu entrera une addresse IP directement. Tu remarquera aussi que le chargement est beaucoup plus rapide car tu évite la requête des serveurs WINS qui te renvoye une IP et seulement après tu sera réelement connecter au site.

    J'espere que tu aura compris pourquoi il ne faut pas mettre d'accents dans les URL

    P.S. 2 : J'avoue que je connais ceci car je suis étudiant en informatique spécialité Architecture des systèmes et réseaux, sans sa j'aurai pas répondu ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'encodage des url
    Par The Jos dans le forum Langage
    Réponses: 1
    Dernier message: 13/10/2010, 22h19
  2. Encodage des URLs
    Par PIEPLU dans le forum Langage
    Réponses: 4
    Dernier message: 10/06/2009, 20h59
  3. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum Flash
    Réponses: 20
    Dernier message: 11/10/2006, 21h16
  4. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 06/10/2006, 16h45
  5. [XML] encodage des accents
    Par matonfire dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 05/05/2004, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo