首页 > 后端开发 > 正文

php的服务器cpu数量怎么获取

2024-09-14 21:47:18 | 我爱编程网

今天我爱编程网小编整理了php的服务器cpu数量怎么获取相关内容,希望能帮助到大家,一起来看下吧。

本文目录一览:

php的服务器cpu数量怎么获取

php截取一段文字的前一百个字的问题

一般英文字符占一个字节,汉字占两个字节,有这么一种思路,在截取字符串的时候逐个判断要截取的字符是汉字还是英文字符,这样就不会出现错误了,下边给你帖一个我写的程序,你自己看下
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<?php
function msubstr($str,$start,$len){

}
?>
<form action="" name="myform" method="post">
输入字符串:<input type="text" name="str" value="5555我爱My祖国" /><br />
输入起始位置:<input type="text" name="str_start" /><br />
输入截取长度:<input type="text" name="str_len" /><br />
<input type="submit" name="sub" value="开始截取字符串" />
</form>
<?php
/*截取字符串的函数--------------数组式截取*/
function msubstr2($str,$start,$len){
$t = explode(" ",microtime());
$tt = round($t[0],5);
//将字符串中每个字符分开 并放到数组中
$str_arr = array();
$j = 1;
for($i=0;$i<strlen($str);$i++){
if(ord(substr($str,$i,1))>0xa0){ //说明是汉字 则需要一次截取3个字符
$str_arr[$j] = substr($str,$i,3);
$i = $i+2;
}else{
$str_arr[$j] = substr($str,$i,1);
}
$j++;
}
print_r($str_arr);
for($i=$start;$i<=$len+$start-1;$i++){
if($i>count($str_arr)){ //判断是否超出数组最大长度 如果是 则结束循环
break;
}
$str_temp .= $str_arr[$i];
}
$t = explode(" ",microtime());
$ttt = round($t[0],5);
return $ttt-$tt;
//return $str_temp;
}
function msubstr1($str,$start,$len){
$t = explode(" ",microtime());
$tt = round($t[0],5);
$j = 0; //记录截取的字符串的字符位置
$s = 0; //记录已经截取的字符长度
$str_temp = "";//记录截取的字符串
$k = strlen($str);
for($i=0;$i<$k;){//循环全部字
if($s>=$len) break;//如果已经截取的字符串长度超过要截取的长度 跳出循环 返回结果
if(ord(substr($str,$i,1))>0xa0){ //判断是否为汉字
if($j+1>=$start){//如果当前截取字符位置大于等于要截取的字符串的开始位置并且当前已经截取的字符长度还没有超出要截取的字符串的长度 则将此字符为要截取的字符
$str_temp .= substr($str,$i,3);
$s++;//已经截取的字符串长度加1
}
$j++;//当前截取的字符串的位置加1
$i+=3;//确定为汉字 在utf8编码下占三个英文字符的长度 则需要记录三个字符
}else{
if($j+1>=$start){
$str_temp .= substr($str,$i,1); //截取英文字符
$s++;//已经截取的字符串长度加1
}
$j++;//当前截取的字符串的位置加1
$i++;//非汉字字符占一个字符的长度
}
}
$t = explode(" ",microtime());
$ttt = round($t[0],5);
//return $ttt-$tt;
return $str_temp;
}
if($_POST[sub]){
echo msubstr1($_POST[str],$_POST[str_start],$_POST[str_len]);
}
?>
</body>
</html>

php的服务器cpu数量怎么获取

php的服务器cpu数量怎么获取

<?php
header("Content-type: text/html; charset=utf-8"); 
error_reporting(E_ALL ^ E_DEPRECATED);
//linux系统探测
function sys_linux() {
    // CPU
    if (false === ($str = @file("/proc/cpuinfo"))) return false;
    $str = implode("", $str);
    @preg_match_all("/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s", $str, $model);
    @preg_match_all("/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $mhz);
    @preg_match_all("/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/", $str, $cache);
    @preg_match_all("/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $bogomips);
    if (false !== is_array($model[1]))    {
    $res['cpu']['num'] = sizeof($model[1]);
    $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';
        /*
        for($i = 0; $i < $res['cpu']['num']; $i++) {
            $res['cpu']['model'][] = $model[1][$i].'&nbsp;('.$mhz[1][$i].')';
            $res['cpu']['mhz'][] = $mhz[1][$i];
            $res['cpu']['cache'][] = $cache[1][$i];
            $res['cpu']['bogomips'][] = $bogomips[1][$i];
        }*/
    $x1 = ($res['cpu']['num']==1) ? '' : ' ×'.$res['cpu']['num'];
        $mhz[1][0] = ' | 频率:'.$mhz[1][0];
        $cache[1][0] = ' | 二级缓存:'.$cache[1][0];
        $bogomips[1][0] = ' | Bogomips:'.$bogomips[1][0];
        $res['cpu']['model'][] = $model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1;
        if (false !== is_array($res['cpu']['model'])) $res['cpu']['model'] = implode("<br />", $res['cpu']['model']);
        if (false !== is_array($res['cpu']['mhz'])) $res['cpu']['mhz'] = implode("<br />", $res['cpu']['mhz']);
        if (false !== is_array($res['cpu']['cache'])) $res['cpu']['cache'] = implode("<br />", $res['cpu']['cache']);
        if (false !== is_array($res['cpu']['bogomips'])) $res['cpu']['bogomips'] = implode("<br />", $res['cpu']['bogomips']);
    }
    // NETWORK
    // UPTIME
    if (false === ($str = @file("/proc/uptime"))) return false;
    $str = explode(' ', implode("", $str));
    $str = trim($str[0]);
    $min = $str / 60;
    $hours = $min / 60;
    $days = floor($hours / 24);
    $hours = floor($hours - ($days * 24));
    $min = floor($min - ($days * 60 * 24) - ($hours * 60));
    if ($days !== 0) $res['uptime'] = $days."天";
    if ($hours !== 0) $res['uptime'] .= $hours."小时";
    $res['uptime'] .= $min."分钟";
    // MEMORY
    if(false === ($str = @file("/proc/meminfo"))) return false;
    $str = implode("", $str);
    preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+).+?SwapTotal\s{0,}\:+\s{0,}([\d\.]+).+?SwapFree\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf);
      preg_match_all("/Buffers\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buffers);
    $res['mem_total'] = round($buf[1][0]/1024, 2);
    $res['mem_free'] = round($buf[2][0]/1024, 2);
    $res['mem_buffers'] = round($buffers[1][0]/1024, 2);
      $res['mem_cached'] = round($buf[3][0]/1024, 2);
    $res['mem_used'] = $res['mem_total']-$res['mem_free'];
    $res['mem_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
    $res['mem_real_used'] = $res['mem_total'] - $res['mem_free'] - $res['mem_cached'] - $res['mem_buffers']; //真实内存使用
      $res['mem_real_free'] = $res['mem_total'] - $res['mem_real_used']; //真实空闲
    $res['mem_real_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0; //真实内存使用率
      $res['mem_cached_percent'] = (floatval($res['mem_cached'])!=0)?round($res['mem_cached']/$res['mem_total']*100,2):0; //Cached内存使用率
    $res['swap_total'] = round($buf[4][0]/1024, 2);
    $res['swap_free'] = round($buf[5][0]/1024, 2);
    $res['swap_used'] = round($res['swap_total']-$res['swap_free'], 2);
    $res['swap_percent'] = (floatval($res['swap_total'])!=0)?round($res['swap_used']/$res['swap_total']*100,2):0;
    // LOAD AVG
    if (false === ($str = @file("/proc/loadavg"))) return false;
    $str = explode(' ', implode("", $str));
    $str = array_chunk($str, 4);
    $res['load_avg'] = implode(' ', $str[0]);
    return $res;
}

//FreeBSD系统探测
function sys_freebsd() {
    //CPU
    if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
  $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';
    $res['cpu']['model'] = get_key("hw.model");
    //LOAD AVG
    if (false === ($res['load_avg'] = get_key("vm.loadavg"))) return false;
    //UPTIME
    if (false === ($buf = get_key("kern.boottime"))) return false;
  $buf = explode(' ', $buf);
  $sys_ticks = time() - intval($buf[3]);
  $min = $sys_ticks / 60;
  $hours = $min / 60;
  $days = floor($hours / 24);
  $hours = floor($hours - ($days * 24));
  $min = floor($min - ($days * 60 * 24) - ($hours * 60));
  if ($days !== 0) $res['uptime'] = $days."天";
  if ($hours !== 0) $res['uptime'] .= $hours."小时";
  $res['uptime'] .= $min."分钟";
 //MEMORY
  if (false === ($buf = get_key("hw.physmem"))) return false;
  $res['mem_total'] = round($buf/1024/1024, 2);
  $str = get_key("vm.vmtotal");
  preg_match_all("/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buff, PREG_SET_ORDER);
  preg_match_all("/\nReal Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buf, PREG_SET_ORDER);
  $res['mem_real_used'] = round($buf[0][2]/1024, 2);
  $res['mem_cached'] = round($buff[0][2]/1024, 2);
  $res['mem_used'] = round($buf[0][1]/1024, 2) + $res['mem_cached'];
  $res['mem_free'] = $res['mem_total'] - $res['mem_used'];
  $res['mem_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
  $res['mem_real_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0;
  return $res;
}

//取得参数值 FreeBSD
function get_key($keyName) {
  return do_command('sysctl', "-n $keyName");
}

//确定执行文件位置 FreeBSD
function find_command($commandName) {
  $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
    foreach($path as $p) {
        if (@is_executable("$p/$commandName")) return "$p/$commandName";
    }
    return false;
}


//windows系统探测
function sys_windows() {
    if(PHP_VERSION >= 5) {
        $obj_locator = new COM("WbemScripting.SWbemLocator");
        $wmi =& $obj_locator->ConnectServer();
    } else {
        return false;
    }
    //CPU
    $cpuinfo = GetWMI(&$wmi, "Win32_Processor", array("Name", "L2CacheSize", "NumberOfCores"));
    $res['cpu']['num'] = $cpuinfo[0]['NumberOfCores'];
    if (null == $res['cpu']['num']) {
        $res['cpu']['num'] = 1;
    }
  $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';
  /*
    for ($i=0;$i<$res['cpu']['num'];$i++) {

        $res['cpu']['model'] .= $cpuinfo[0]['Name']."<br />";

        $res['cpu']['cache'] .= $cpuinfo[0]['L2CacheSize']."<br />";

    }*/
    $cpuinfo[0]['L2CacheSize'] = ' ('.$cpuinfo[0]['L2CacheSize'].')';
  $x1 = ($res['cpu']['num']==1) ? '' : ' ×'.$res['cpu']['num'];
    $res['cpu']['model'] = $cpuinfo[0]['Name'].$cpuinfo[0]['L2CacheSize'].$x1;
    //SYSINFO
    $sysinfo = GetWMI(&$wmi, "Win32_OperatingSystem", array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));
    $sysinfo[0]['Caption']=iconv('GBK', 'UTF-8',$sysinfo[0]['Caption']);
    $sysinfo[0]['CSDVersion']=iconv('GBK', 'UTF-8',$sysinfo[0]['CSDVersion']);
    $res['win_n'] = $sysinfo[0]['Caption'].' '.$sysinfo[0]['CSDVersion']." 序列号:{$sysinfo[0]['SerialNumber']} 于".date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))."安装";
    //UPTIME
    $res['uptime'] = $sysinfo[0]['LastBootUpTime'];
    $sys_ticks = time() - strtotime(substr($res['uptime'], 0, 14));
    $min = $sys_ticks / 60;
    $hours = $min / 60;
    $days = floor($hours / 24);
    $hours = floor($hours - ($days * 24));
    $min = floor($min - ($days * 60 * 24) - ($hours * 60));
    if ($days !== 0) $res['uptime'] = $days."天";
    if ($hours !== 0) $res['uptime'] .= $hours."小时";
    $res['uptime'] .= $min."分钟";
    //MEMORY
    $res['mem_total'] = round($sysinfo[0]['TotalVisibleMemorySize']/1024,2);
    $res['mem_free'] = round($sysinfo[0]['FreePhysicalMemory']/1024,2);
    $res['mem_used'] = $res['mem_total']-$res['mem_free'];    //上面两行已经除以1024,这行不用再除了
    $res['mem_percent'] = round($res['mem_used'] / $res['mem_total']*100,2);
    //LoadPercentage
    $loadinfo = GetWMI(&$wmi, "Win32_Processor", array("LoadPercentage"));
    $res['load_avg'] = $loadinfo[0]['LoadPercentage'];
    return $res;
}
function GetWMI(&$wmi, $strClass, $strValue = array()) {
    $arrData = array();
    $objWEBM = $wmi->Get($strClass);
    $arrProp = $objWEBM->Properties_;
    $arrWEBMCol = $objWEBM->Instances_();
    foreach($arrWEBMCol as $objItem) {
        @reset($arrProp);
        $arrInstance = array();
        foreach($arrProp as $propItem) {
            eval("\$value = \$objItem->" . $propItem->Name . ";");
            if (empty($strValue)) {
                $arrInstance[$propItem->Name] = trim($value);
            } else {
                if (in_array($propItem->Name, $strValue)) {
                    $arrInstance[$propItem->Name] = trim($value);
                }
            }
        }
        $arrData[] = $arrInstance;
    }
    return $arrData;
}

//根据操作系统取得CPU相关信息
switch(PHP_OS) {
  case "Linux":
    $sysReShow = (($sys_info = sys_linux()) !== false) ? "show" : "none";
    break;
  case "FreeBSD":
    $sysReShow = (($sys_info = sys_freebsd()) !== false) ? "show" : "none";
    break;
  case "WINNT":
    $sysReShow = (($sys_info = sys_windows()) !== false) ? "show" : "none";
    break;
  default:
    break;
}
?>

此PHP类,根据操作系统来进行判断。 我爱编程网

调用<?php echo '['.$sys_info['cpu']['num_text'].'] '.$sys_info['cpu']['model']; ?>

php的服务器cpu数量怎么获取

C语言有哪些取整函数?

我爱编程网(https://www.52biancheng.com)小编还为大家带来C语言有哪些取整函数?的相关内容。

C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int i = 2.5; 或 i = (int) 2.5;
这种方法采用的是舍去小数部分
2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。

以上就是php的服务器cpu数量怎么获取全部内容,更多相关信息,敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php的服务器cpu数量怎么获取”相关推荐
php 如何获取服务器的信息
php 如何获取服务器的信息

php如何获取服务器的信息服务器变量$_SERVER详解:1、$_SESSION['PHP_SELF']—获取当前正在执行脚本的文件名2、$_SERVER['SERVER_PROTOCOL']—请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。3、$_SERVER['REQUEST_TIME']—请求开始时的时间戳。从PHP5.1.0起有效。和time函数效果一样

2024-10-12 20:46:41
PHP如何获取本地时间与服务器时间
PHP如何获取本地时间与服务器时间

PHP如何获取本地时间与服务器时间PHP获取服务器时间和本地时间很简单,可以用内置函数实现,具体代码如下:记得给分!!!&lt;?php //获取服务器时间    echo date("Y-m-d h:i:s"); //获取本地时间(也可以说是你所在时区时间)    date_default_timezone_set('地区'); //地区:中国是PRC,或shanghai

2024-08-11 01:52:48
用PHP怎样实现把文件从一台服务器,移动到另一台FTP服务器呢?
用PHP怎样实现把文件从一台服务器,移动到另一台FTP服务器呢?

PHPmove_uploaded_file()参数的正确写法,求指点该函数的作用是把上传的文件移动到一个新的位置。有两个参数,第一个参数是你上传后的临时文件名,由系统自动生成。通常其样式为:$_FILE["file"]["tmp_name"];其中的file为你前台文件上传表单的名称。第二个参数就是包含有路径的新的文件名。如:"upload/1.jpg";这样,就会把

2024-08-02 04:39:38
服务器如何开启php的fsockopen函数
服务器如何开启php的fsockopen函数

服务器如何开启php的fsockopen函数第一步:php.ini文件中查找allow_url_fopen=On使其值为On第二步:php.ini文件中查找extension=php_openssl.dll如果前面有分号,去掉分号第三步:重启web服务器,apache或IISphp开启fsockopen函数1.方法一:

2024-09-26 15:03:59
php 实现上传图片至服务器的函数(php 编写 实现上传图片至服务器的函数)
php 实现上传图片至服务器的函数(php 编写 实现上传图片至服务器的函数)

php实现上传图片至服务器的函数&lt;formmethod=postaction="upload.php"ENCTYPE="multipart/form-data">&lt;inputtype="file"name="upload_file">&lt;inputtype="submit"name="submit"value="上传文件">用PHP上传时,需要对内容作详细的检

2024-08-13 11:02:11
php服务器最小安装? PHP 中getenv函数的句子
php服务器最小安装? PHP 中getenv函数的句子

php服务器最小安装?最简单的XP搭建PHP环境,Apache服务器这个是我成功配置的经验1.安装apache_2.2.4-win32-x86-no_ssl.msi到d:\phpWeb\APACHE\步骤:下一步下一步2.安装php-5.2.0-Win32.zip到d:\phpWeb\php\步骤:(1)解压压缩包到d:\phpWeb\php\(2)找到ph

2024-12-10 01:25:46
如何开启服务器 thinkphp pathinfo的访问方式
如何开启服务器 thinkphp pathinfo的访问方式

使用PHP中pathinfo函数讲解pathinfo()是PHP中的内置函数,用于以关联数组或字符串形式提供文件路径信息。调用方式为pathinfo(path,options),返回一个关联数组,包含路径信息。使用pathinfo函数的步骤如下:首先,你需要指定要检查的路径作为参数传递给pathinfo()函数。其次,可选择性地提供一个options参数,规定返回的数组元素

2024-12-02 19:34:49
php 实现上传图片至服务器的函数 PHP FTPPHP FTP 函数
php 实现上传图片至服务器的函数 PHP FTPPHP FTP 函数

php实现上传图片至服务器的函数&lt;formmethod=postaction="upload.php"ENCTYPE="multipart/form-data">&lt;inputtype="file"name="upload_file">&lt;inputtype="submit"name="submit"value="上传文件">用PHP上传时,需要对内容作详细的检

2024-09-26 16:50:56