ID: 28351 Updated by: [EMAIL PROTECTED] Reported By: risearch at risearch dot org -Status: Open +Status: Bogus Bug Type: Arrays related Operating System: FreeBSD PHP Version: Irrelevant New Comment:
Thank you for taking the time to report a problem with PHP. Unfortunately you are not using a current version of PHP -- the problem might already be fixed. Please download a new PHP version from http://www.php.net/downloads.php If you are able to reproduce the bug with one of the latest versions of PHP, please change the PHP version on this bug report to the version you tested and change the status back to "Open". Again, thank you for your continued support of PHP. And it's not our problem if someone doesn't update.. Previous Comments: ------------------------------------------------------------------------ [2004-05-10 21:55:22] risearch at risearch dot org The output is ===================== 4.3.4 done ===================== Server info: FreeBSD 4.9-STABLE #0: Thu Jan i386 I don't know more details because it is not my server. ------------------------------------------------------------------------ [2004-05-10 18:57:44] [EMAIL PROTECTED] On the server where you encounter the problem, run this script and paste the output here: <?php echo phpversion() . "\n"; foreach(array("\x00D" => 1) as $k => $v) { echo bin2hex($k); }; echo "done\n"; ?> ------------------------------------------------------------------------ [2004-05-10 18:38:52] risearch at risearch dot org The bug is in arrays. When you iterate through whole array some of the keys (which has "\x00" as first character) returned by foreach ($arr as $k => $v) are incorrect. Empty string is returned in $k. ------------------------------------------------------------------------ [2004-05-10 18:29:57] [EMAIL PROTECTED] What exactly is the bug? In the arrays or in the contents of the file? How are you testing it? (you need to be more specific if you want someone else to be able to reproduce it) ------------------------------------------------------------------------ [2004-05-10 18:23:25] risearch at risearch dot org Description: ------------ I use PHP on WinXP and Linux box. Older versions had bug with array keys starting wuth "\x00" character. Now there is no such bug on my computers (WinXP/Apache/php-4.3.4-Win32 & php-4.3.6-Win32 or Linux/Apache 1.3.29/PHP 4.3.4), but some of the script's users complain that script works on Windows box but does not on server. So, I guess that some of the versions still have this bug (like MacOSX/Apache/PHP4.3.2 or BSD/Apache/PHP4.3.4, as reported by users). Reproduce code: --------------- $key = "\x00\x00"; $arr[$key] = 1; $key = "\x00\x44"; $arr[$key] = 2; $key = "\x44\x44"; $arr[$key] = 3; $fp = fopen("test","wb"); foreach ($arr as $k => $v) { fwrite($fp,"'$k' => $v\n"); } Expected result: ---------------- '\x00\x00' => 1 '\x00D' => 2 'DD' => 3 /* instead of "\x00" zero-character should be written to file */ Actual result: -------------- '' => 1 '' => 2 'DD' => 3 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=28351&edit=1