#26391 [Fbk->Opn]: parse_url(urldecode($url)) destroys %88
| From: | towb at tiscali dot de | Date: | Wed, 26 Nov 2003 16:35:19 +0000 |
| Subject: | #26391 [Fbk->Opn]: parse_url(urldecode($url)) destroys %88 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-51110@lists.php.net to get a copy of this message | ||
ID: 26391
User updated by: towb at tiscali dot de
Reported By: towb at tiscali dot de
-Status: Feedback
+Status: Open
Bug Type: *URL Functions
Operating System: MacOS X 10.2.6
PHP Version: 4.3.4
New Comment:
I suppose this is a standard reply. The problem only
occurs on MacOS.
I can reproduce it with php4-STABLE-200311261430 (built
--disable-cgi --disable-all --without-pear).
The exact file I used to check is at http://
www.celvina.de/tmp/url.php.txt and the result (using
CLI php > file) at http://www.celvina.de/tmp/url.txt
Both are identical to the orignal report.
Previous Comments:
------------------------------------------------------------------------
[2003-11-24 20:10:59] iliaa@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
Cannot replicate in latest CVS.
------------------------------------------------------------------------
[2003-11-24 17:32:09] towb at tiscali dot de
Description:
------------
Only on MacOS do PHP 4.3.3 and .4 return different
values for parse_url(urldecode($url)) and
urldecode(parse_url($url)) when UTF-8 characters are
involved.
The correct result below (identical strings) comes from
PHP 4.3.4 on Linux/x86.
Reproduce code:
---------------
$string =
"file://localhost/Volumes/Second/Next/Arianne/The%20End%20of%20Evangelion%20OST/Komm,%20su%CC%88sser%20Tod.mp3";
$first_decode = urldecode($string);
$first_url = parse_url($first_decode);
$first_path = $first_url['path'];
$last_url = parse_url($string);
$last_path = $last_url['path'];
$last_decode = urldecode($last_path);
var_dump($first_path, $last_decode);
var_dump(urlencode($first_path), urlencode($last_decode));
Expected result:
----------------
string(77) "/Volumes/Second/Next/Arianne/The End of
Evangelion OST/Komm, suÌsser Tod.mp3"
string(77) "/Volumes/Second/Next/Arianne/The End of
Evangelion OST/Komm, suÌsser Tod.mp3"
string(95)
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC%88sser+Tod.mp3"
string(95)
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC%88sser+Tod.mp3"
Actual result:
--------------
string(77) "/Volumes/Second/Next/Arianne/The End of
Evangelion OST/Komm, su?_sser Tod.mp3"
string(77) "/Volumes/Second/Next/Arianne/The End of
Evangelion OST/Komm, süsser Tod.mp3"
string(93)
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC_sser+Tod.mp3"
string(95)
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC%88sser+Tod.mp3"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26391&edit=1