PHP 4.0 Bug #6678: Different behaviour of arithmetic operations on Linux PHP and Windows PHP
| From: | info at emre dot de | Date: | Tue, 12 Sep 2000 09:41:28 +0000 |
| Subject: | PHP 4.0 Bug #6678: Different behaviour of arithmetic operations on Linux PHP and Windows PHP | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-32964@lists.php.net to get a copy of this message | ||
From: info@emre.de
Operating system: Windows 2000 & SuSE Linux
PHP version: 4.0.2
PHP Bug Type: Unknown/Other Function
Bug description: Different behaviour of arithmetic operations on Linux PHP and Windows PHP
<html>
<body>
<?
/* Fuction to turn an integer into an ip address */
function int2ip($int)
{
// There are 4 bytes to handle, so let´s go for it ....
for ($i=0 ; $i < 4 ; $i++) {
// Let´s leave only the first 8 bits, kill the rest and assign the value to an array element
$bytes[$i] = $int & 0xFF;
// Now move the remaining bits to the right and go on with the next byte ...
$int = $int >> 8;
}
// The array containing the bits is joined to a string, the bytes separated by a dot
$ip = "$bytes[3].$bytes[2].$bytes[1].$bytes[0]";
return ($ip);
}
print int2ip(3232235648);
/*
Result should be 192.168.0.128. On WAMP it works fine,
on LAMP it doesn´t.
Maybe this one´s not bug but I´m too dump - still this "wrong" behaviour
has been verfied on several Linux systems running Apache and PHP.
The correct one has been verified on three Windows systems running
Apache and PHP (latest)
*/
?>
</body>
</html>