ID: 26571 Updated by: [EMAIL PROTECTED] Reported By: Mentaloid at hotmail dot com -Status: Open +Status: Bogus Bug Type: Scripting Engine problem Operating System: Linux 2.4.22 SMP PHP Version: 4.3.3 New Comment:
If you ever find out why - reopen it :) Regards Alan Previous Comments: ------------------------------------------------------------------------ [2003-12-09 23:23:00] Mentaloid at hotmail dot com Hmm - I'm so embarrassed - this has problem has been buggin me for days, I go and make a bug report and I can't reproduce it with my original code that would for the life of me not work as expected. Now it does. This is an exact copy - database included (binary innodb copy). http://tko.mentadd.com/test/index.php Sorry to bother you guys, I know your all real busy. ------------------------------------------------------------------------ [2003-12-09 22:35:05] Mentaloid at hotmail dot com I'm unable to reproduce using your code.. (the -r is unavailable on my command line, so I droped it into a .php file and ran it that way). However, I'm also unable to reproduce it via a static 'ffffffff' string, however it will not work with a string from a sql result. strlen($fetch['test1']) shows 8 bytes, so I don't believe there is a leading or trailing null. I will do some more investigating here, and update with any more results I can dig up. The function I posted is as is, but I'll see if I can setup a source that will reproduce this for you. It could be a lot more source to sift through ;) ------------------------------------------------------------------------ [2003-12-09 22:15:49] [EMAIL PROTECTED] I cant reproduce this on php5 or php4.3.2-RC Does this exhibit the same problem? php -r 'function test() { print_r(func_get_args()); } test("ffffffff","ffffffff");' ------------------------------------------------------------------------ [2003-12-09 21:23:50] Mentaloid at hotmail dot com Description: ------------ When passing a string containing 8 bytes that represents hexadecimal data such as 'ffffffff' to a user function that utilizes func_get_arg() or func_get_arg(), values become unavailable (zero length string) while func_num_args() will show that the value existed. Configure Line "'./configure' '--with-mysql=/usr/local/mysql' '--with-ftp' '--enable-sockets' '--with-apxs2=/usr/local/apache2/bin/apxs'" Apache 2.0, standard config + frontpage extensions. Frontpage extensions not active on this virtualhost. Standard INI, with the exception of ASP TAGS. PHPInfo page can be viewed @ http://tko.mentadd.com/ServerControl/control/xxPhpInfo.php Reproduce code: --------------- function binlogdata() { global $DB, $scbinlogtable; $args = func_get_args(); $results = ''; foreach ($args as $key => $value) { if ($key == 0) { $results = $results.'<API>'.$value.'</API>'; } else { $results = $results.'<PARM'.$key.'>'.$value.'</PARM'.$key.'>'; } } return $results; } $fetch['test1'] = 'thisisok'; $fetch['test2'] = 'ffffffff'; echo binlogdata('PlayerLimit',$fetch['test1'],$fetch['test2']); Expected result: ---------------- // The expected result is "<API>PlayerLimit</API><PARM1>thisisok</PARM1><PARM2>ffffffff</PARM2>"; Actual result: -------------- // The actual result is "<API>PlayerLimit</API><PARM1>thisisok</PARM1><PARM2></PARM2>"; ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26571&edit=1
