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

Reply via email to