这个php脚本基本上做了速度测试。它完美地运作。唯一的问题是它回显文本 MB / s 并且似乎无法从输出中删除它。我只想要原始的#,比如说速度测试的回复为 23.76 MB / s 我只想要输出 23.76 。
任何帮助将不胜感激。我只是花了很多时间试图得到这个,这就是我想出的。是的,我浏览了网站和Google,但我似乎无法正常工作。
//Speedtest Function
function get_speedtest() {
exec("/usr/bin/wget -O /dev/null http://cachefly.cachefly.net/1mb.test 2>&1",$output);
end($output);
$a=prev($output);
if ($start=strpos($a, '('))
if ($end=strpos(substr($a,$start+1), ')')) {
$b = substr($a, $start+1, $end);
echo $b;
unset ($a, $b);
} else
echo '0';
}
echo get_speedtest();
JJ
答案 0 :(得分:1)
这样做......
echo $result=explode(' ',get_speedtest())[0]; //"prints" 23.76
好像你遇到了 Array Deferencing
问题....所以这样做..
$result=explode(' ',get_speedtest());
echo $result[0]; //"prints" 23.76
答案 1 :(得分:1)
get_speedtest()
不会返回任何内容。<?php
//Speedtest Function
function get_speedtest() {
exec("/usr/bin/wget -O /dev/null http://cachefly.cachefly.net/1mb.test 2>&1",$output);
if(preg_match('/\(([0-9.]+) (..)\/s\)/', $output[count($output) - 2], $m)){
return array('speed' => $m[1], 'unit' => $m[2]);
}
return array();
}
print_r(get_speedtest());
echo "\n";
答案 2 :(得分:0)
$b
是一个字符串,因此您可以对其进行操作以格式化或剪切您想要的任何内容。
一个解决方案是echo split(' ', $b)[0]