ID: 26391 User updated by: towb at tiscali dot de -Summary: parse_url(urldecode($url)) destroys %88 Reported By: towb at tiscali dot de Status: Open Bug Type: *URL Functions Operating System: MacOS X 10.2.6 PHP Version: 4.3.4 New Comment:
I made the mistake of only testing with CLI on MacOS. Repeated with APXS the output is correct and identical to x86. So it is probably related to the SAPI rather than the platform. I cannot test with CLI on x86. Still, the CVS build does give the deviating result using CLI. Previous Comments: ------------------------------------------------------------------------ [2003-11-26 11:35:18] towb at tiscali dot de 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. ------------------------------------------------------------------------ [2003-11-24 20:10:59] [EMAIL PROTECTED] 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, süsser Tod.mp3" string(77) "/Volumes/Second/Next/Arianne/The End of Evangelion OST/Komm, sü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
