我在运行Mac和Linux的PHP代码中遇到不同的输出。PHP和Apache2中的奇怪行为:不同服务器中的不同输出
我有2个服务器上运行以下代码:
$ltt = ((ord($str[7]) << 24) | (ord($str[8]) << 16) | (ord($str[9]) << 8) | (ord($str[10])))/1000000;
即使ord(str[ ])
输出是相同的:
[7] = 254
[8] = 26
[9] = 22
[10] = 216
但是,运行PHP 5.3.6的MAMP栈上(Mac),如果$ ltt最初应该是负数,则返回4263.12265
(不正确)。
在运行相同php版本的LAMP栈(Ubuntu)上,它将返回确切的负值-31.84465
。
出现这种情况只能用负数..
更新ADDL。信息:
- 甲变种转储给出
þØçï_Kstring(25) "þØçï_K"
- BIN2HEX给出
000e1b00000000fe1a16d806e707ef0000045f0000004b0000
Simplying功能为只包括数字输入,输出仍然不同:
$ltt = (254 << 24 | 26 << 16 | 22 << 8 | 216)/ 1000000;
4263.12265
在MAMP上和-31.84465
在L上AMP
两台机器的PHP配置是否相同?相同的版本并不总是意味着相同的设置;) – Kevin
是一个64位和其他32位?我不认为它实际上*应该*在这里虽然... ... – Charles
这两个都是32位,配置是股票,除了一些内存限制和post_Data的变化.. – kouton