我从这里得到值
$uptime = explode(',', `uptime`);$uptime[3]为load average: 2.26
但是,intval($uptime[3]);返回0
我想这可能是因为小数位的原因,所以我也尝试了一下。
$uptime_days = strpos($uptime[0], ' ');
$uptime_days_value = substr($uptime[0], $uptime_days + 9);
echo intval($uptime_days_value);$uptime_days_value返回up 60 days,因此intval()应该返回60,但它返回0
发布于 2013-08-18 01:31:33
如果$uptime3为load average: 2.26,那么您将得到0返回,因为load average不是数字(整数或实数)
$uptime[3] = 'load average: 2.26';
echo intval(explode(': ', $uptime[3])[1]);如果$uptime_days_value为up 60 days,则intval()将返回0,因为up不是数字
$uptime_days_value = 'up 60 days';
echo intval(explode(' ', $uptime_days_value)[1]);发布于 2013-08-18 02:02:41
使用正则表达式
<?php
$string = "load average: 2.26";
$expression = "/[0-9]+\\.*[0-9]*";
$matches = array();
if(preg_match($expression, $string, $matches) != 0) {
print_r($matches);
}
?>如果有多个类型:#或具有任意位数的#.#,则应打印:
Array
(
[0] => "2.26"
)请注意,$matches是通过引用传递的,因此在函数调用中将替换$matches的现有值。
然后,要获取整数或浮点值:
$number = intval($matches[0]);https://stackoverflow.com/questions/18291518
复制相似问题