ID: 31324 User updated by: phpbug at tore dot cc Reported By: phpbug at tore dot cc -Status: Bogus +Status: Open Bug Type: Strings related Operating System: Solaris 10 PHP Version: 5.0.2 New Comment:
Are 64bit processors not supported by php? Which machine architecture is 'my system'? The php is compiled with gcc2 AND gcc3. With solaris 9 AND solaris 10. The same trouble occurs. So I need to have the code for 'strlen' in php extracted before I can figure out where the source for the trouble is. A simple C-program using string.h's strlen cause no troule at all. Previous Comments: ------------------------------------------------------------------------ [2004-12-29 21:42:53] [EMAIL PROTECTED] Sounds like either a compiler or libc bug. I cannot replicate this on my systems either. ------------------------------------------------------------------------ [2004-12-29 19:13:28] phpbug at tore dot cc I might add that I tried php-5.0.3 on an intel-based solaris 10 machine and there were no problems with the strlen. ------------------------------------------------------------------------ [2004-12-29 07:34:41] phpbug at tore dot cc I have used gcc2 and gcc3 to compile. The machine is a sparc. The problem occurs on solaris 9 and solaris 10. If you suspect that this is a solaris problem, can you extract the code for 'strlen' in php. I could make some tests in C.... ------------------------------------------------------------------------ [2004-12-28 23:59:37] [EMAIL PROTECTED] It still works fine for me on Linux. Which compiler did you use to compile PHP (gcc or sun workshop), and what kind of platform do you use? intel (32/64), sparc... ------------------------------------------------------------------------ [2004-12-28 23:40:36] phpbug at tore dot cc Sorry, my mistake! It seems to work on one char long strings. I made a better script (still avoiding loops...). <?php $s=pack("C*",0x8e,0x8f); $t=pack("C*",0x8e); $u=pack("C*",0x8e,0x8f,0x90); print "The variable s has the length: " . strlen($s) . "\n"; print "The variable t has the length: " . strlen($t) . "\n"; print "The variable u has the length: " . strlen($u) . "\n"; ?> Result: The variable s has the length: 1 The variable t has the length: 1 The variable u has the length: 2 The result should be: The variable s has the length: 2 The variable t has the length: 1 The variable u has the length: 3 Since s=2 chars, t=1 char and u 3 chars long. Lets try another test with 7 bit chars. <?php $s=pack("C*",0x30,0x31); $t=pack("C*",0x30); $u=pack("C*",0x30,0x31,0x32); print "The variable s has the length: " . strlen($s) . "\n"; print "The variable t has the length: " . strlen($t) . "\n"; print "The variable u has the length: " . strlen($u) . "\n"; ?> Result: The variable s has the length: 2 The variable t has the length: 1 The variable u has the length: 3 As expected. No problem with low values on the chars. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/31324 -- Edit this bug report at http://bugs.php.net/?id=31324&edit=1