Version complète: sur le forum Webmaster Hub : Encodage d'URL
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
destroyedlolo
Bonjour,

Histoire d'eviter les probleme d'accent et autre joyeusetes, j'utilise rawurlencode() ... sauf que cette brave fonction encore aussi les '/' en temps que %2F ce qui fait que je n'accede plus au sous repertoire.

Existe-t-il une facon de d'encoder les URL sans que '/' soit touche ?

Pour le moment je re-transforme les %2F en / apres l'encodage, mais je trouve ca crade.

Merci et A+

Lolo

PS: J'ai bien evidement une fonction qui interdit l'usage du '/' dans les noms de fichiers ou de repertoires.
sarc
Salut wink.gif

Tu peux donner le code que tu utilises avec une variable d'essai, pour que je vois exactement ce que tu fais ?

Sinon dans la page de rawurlencode sur php.net, il y a un commentaire qui explique ce qu'il faut faire :

CITATION
You can encode paths using:

<?php
$encoded = implode("/", array_map("rawurlencode", explode("/", $path)));
?>

Au pire tu te crées une fonction "encode_url" qui fait ça, comme ça tu vois pas la différence au niveau de ton programme wink.gif
destroyedlolo
Merci Sarc pour ta reponse.

Le code que j'utilise pour le moment est
CODE
str_replace('%2F','/',rawurlencode( $fichier ));


Ca fonctionne et ca m'a l'aire plus optimise que l'exemple poser sur php.net

[edit]
Je viens aussi de voir que ca me fait une belle faille de securite mad2.gif
Va peut etre falloire que j'utilise quant meme les explode/implode evil.gif
[/edit]
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.