是否有可能让窗口处理器位? 我想用php找到窗口处理器位? 我有编码来查找操作系统和其他属性。 好心劝告。 谢谢 - Haan的
答案 0 :(得分:35)
<?php
switch(PHP_INT_SIZE) {
case 4:
echo '32-bit version of PHP';
break;
case 8:
echo '64-bit version of PHP';
break;
default:
echo 'PHP_INT_SIZE is ' . PHP_INT_SIZE;
}
此代码段至少会告诉您是否正在运行32/64位版本的PHP。
答案 1 :(得分:6)
获得位数的稍微更短且更健壮的方法。
strlen(decbin(~0));
这是如何运作的:
按位补码运算符,波浪号,〜,翻转每一位。
@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;
}
答案 2 :(得分:2)
如果你安装了COM
扩展名(在php.ini中),你可以调用windows WMI服务。
(请记住,如果你有64位处理器,64位操作系统和64位PHP,那么你的整数仍然是32位,因为x64-PHP有限制Windows。)
总之...
检查操作系统:
function getOsArchitecture() {
$wmi = new COM('winmgmts:{impersonationLevel=impersonate}//./root/cimv2');
$wmi = $obj->ExecQuery('SELECT * FROM Win32_OperatingSystem');
if (!is_object($wmi)) {
throw new Exception('No access to WMI. Please enable DCOM in php.ini and allow the current user to access the WMI DCOM object.');
}
foreach($wmi as $os) {
return $os->OSArchitecture;
}
return "Unknown";
}
或者,检查物理处理器:
function getProcessorArchitecture() {
$wmi = new COM('winmgmts:{impersonationLevel=impersonate}//./root/cimv2');
if (!is_object($wmi)) {
throw new Exception('No access to WMI. Please enable DCOM in php.ini and allow the current user to access the WMI DCOM object.');
}
foreach($wmi->ExecQuery("SELECT Architecture FROM Win32_Processor") as $cpu) {
# only need to check the first one (if there is more than one cpu at all)
switch($cpu->Architecture) {
case 0:
return "x86";
case 1:
return "MIPS";
case 2:
return "Alpha";
case 3:
return "PowerPC";
case 6:
return "Itanium-based system";
case 9:
return "x64";
}
}
return "Unknown";
}
答案 3 :(得分:1)
你可以写一个这样的函数:
function is_32bit(){
return PHP_INT_SIZE === 4;
}
然后你可以像这样使用它:
if( is_32bit() ) {
// do 32 bit stuffs
}
答案 4 :(得分:0)
function bits() {
return PHP_INT_SIZE * 8;
}
echo 'Php running on '.bits(). ' bits system';
答案 5 :(得分:0)
另一种选择:
function IsAtLeast64Bit()
{
return defined('PHP_INT_SIZE') && PHP_INT_SIZE >= 8;
}
如果定义了 PHP_INT_SIZE,它只返回 TRUE。这应该适用于所有 64 位系统。超过 64 位的未来系统也会被管理。
答案 6 :(得分:-2)
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
它包含在变量中,你可以将其爆炸并从