使用PHP查找Windows 32或64位

是否有可能获得窗口处理器位? 我想find使用PHP的窗口处理器位? 我有编码来查找操作系统和其他属性。 友善的build议。 谢谢 – 哈恩

<?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正在运行。

一个稍微更短,更强大的方式来获得位数。

  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; } 

如果您安装了COM扩展(在php.ini中),则可以调用Windows WMI服务。

(请记住,如果你有64位处理器,64位操作系统和64位PHP的事件,由于Windows上的x64-PHP限制,你的整数仍然是32位。)

无论如何…

检查操作系统:

 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"; } 

你可以写一个这样的函数:

 function is_32bit(){ return PHP_INT_SIZE === 4; } 

那么你可以像这样使用它:

 if( is_32bit() ) { // do 32 bit stuffs } 

<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
它包含在变量中,你可以爆炸并从中派生出来