BLA*_*AKE 24 php windows 32bit-64bit
我在这里处理Windows.
我知道你可以使用$_SERVER['HTTP_USER_AGENT']变量来检测查看页面的浏览器的操作系统,但是PHP可以检测服务器操作系统的任何方式吗?
对于我的程序的UI,我使用的是PHP网页.我需要读取注册表中的一个密钥,该密钥位于64位操作系统的不同位置(它位于Wow6432Node密钥下).
PHP可以告诉它运行的是什么操作系统吗?PHP可以判断操作系统是64位还是32位?
Kri*_*our 30
注意:这个解决方案比@Salman A的答案更不方便和慢.我建议你使用他的解决方案并检查 PHP_INT_SIZE == 8 你是否使用64位操作系统.
如果您只想回答32位/ 64位问题,那么像这样的偷偷摸摸的小函数就可以解决这个问题(利用intval函数处理基于32/64位的整数的方式.)
<?php
function is_64bit()
{
$int = "9223372036854775807";
$int = intval($int);
if ($int == 9223372036854775807) {
/* 64bit */
return true;
} elseif ($int == 2147483647) {
/* 32bit */
return false;
} else {
/* error */
return "error";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看代码:http://ideone.com/JWKIf
注意:如果操作系统是64位但运行32位版本的php,该函数将返回false(32位)...
Sal*_*n A 26
要检查整数(4/8字节)的大小,可以使用PHP_INT_SIZE常量.如果PHP_INT_SIZE===8那时你有一个64位版本的PHP.PHP_INT_SIZE===4意味着正在使用32位版本的PHP,但这并不意味着操作系统和/或处理器是32位的.
在Windows + IIS上,有一个$_SERVER["PROCESSOR_ARCHITECTURE"]变量包含x86在我的系统上测试时(WinXP-32bit).我认为它将包含x64在64位操作系统上运行时.
Chr*_*is0 12
获得位数的稍微更短且更稳健的方法.
strlen(decbin(~0));
Run Code Online (Sandbox Code Playgroud)
这是如何工作的:
按位补码运算符,波浪号,〜,翻转每一位.
@see http://php.net/manual/en/language.operators.bitwise.php
在0上使用它可以在每个位上切换整数.
这为您提供了PHP安装可以处理的最大数量.
然后使用decbin()将以二进制形式为您提供此数字的字符串表示形式
@see http://php.net/manual/en/function.decbin.php
和strlen将给你位数.
这是一个可用的功能
function is64Bits() {
return strlen(decbin(~0)) == 64;
}
Run Code Online (Sandbox Code Playgroud)
尝试使用php_uname函数...
<?php
echo php_uname('s');/* Operating system name */
echo "<br />";
echo php_uname('n');/* Host name */
echo "<br />";
echo php_uname('r');/* Release name */
echo "<br />";
echo php_uname('v');/* Version information */
echo "<br />";
echo php_uname('m');/* Machine type */
echo "<br />";
echo PHP_OS;/* constant will contain the operating system PHP was built on */
?>
Run Code Online (Sandbox Code Playgroud)
来源 - 确定操作系统 - http://www.sitepoint.com/forums/showthread.php?t=510565
另一种方法是使用......
echo $_SERVER['SERVER_SOFTWARE'];
Run Code Online (Sandbox Code Playgroud)
这将在运行Win 7(64位)的ibm t400上返回以下字符串...
Apache/2.2.12(Win32)DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0 mod_perl/2.0.4 Perl/v5.10.0
不幸的是,它返回WIN32,因为我正在运行32位版本的apache.
您可以使用cmd获取通用处理器信息(在*nix服务器上)...
echo system('cat /proc/cpuinfo');
Run Code Online (Sandbox Code Playgroud)
如果您计划支持许多不同的操作系统,则可能需要使用这些方法的组合.
| 归档时间: |
|
| 查看次数: |
12903 次 |
| 最近记录: |