php如何获得指定值并且组成新数组

2025-04-05 02:32:47
推荐回答(2个)
回答1:


//有一个php的ping程序目的是来测试网速和连接情况的,程序和运行的结果如下,现在想把结果取出部分值并组成新数组,如下面的结果,要取得值"50% los","232ms","232ms"."232ms"返回新数组如:"50%,232,232,232",也就是程序运行结果直接返回"50%,232,232,232",而不要那么多ping 程序执行结果

////////ping 程序开始////////?>

'>













怎么利用PHP去ping一个地址
请输入url或ip地址:



if(($server == '127.0.0.1')||($server == 'localhost')||($server == getenv("SERVER_ADDR"))) {

echo "
";

echo "Fuck Off!
";

echo "
";
exit;

} else {
if($server =="") {

echo "

请输入url或ip地址:

";
exit;
}
}
$ip1 = getenv("REMOTE_ADDR");
$hname = getenv("HTTP_HOST");
$count = 5;
$psize = 32;

echo "Your IP is: $ip1
"
."Trying to ping: $server
"
."Using server: $hname";

echo "
";

echo "STATS:

";

// 该函数返回对提交主机ping的值 lost/min/max/avg
function myPing($ping_count='4',$ping_psize='32', $ping_server='www.baidu.com')
{
$command = "ping -n $ping_count -l $ping_psize $ping_server";

exec($command, $result, $rval);
$aa=count($result);
if(count($result) <= 0) {
$myPing='100%,0,0,0';
exit;
}

$bb=$aa-3;
$cc=$aa-1;
$ping_los=explode(',',$result[$bb]);
$ping_times=explode(',',$result[$cc]);
$ping_lose_value= strstr($ping_los[2],'(');
$ping_lose_value=preg_replace('/[^0-9.]+/','',$ping_lose_value);
$ping_times_min= preg_replace('/[^0-9.]+/','',$ping_times[0]);
$ping_times_max= preg_replace('/[^0-9.]+/','',$ping_times[1]);
$ping_times_avg= preg_replace('/[^0-9.]+/','',$ping_times[2]);
$myPing= $ping_lose_value.'%,'.$ping_times_min.','.$ping_times_max.','.$ping_times_avg ;
echo $myPing;
}
echo myPing(6,32,$server);
//2个小时...郁闷 本以为三十分可以解决 函数已经给你封装了 你可以自己扩展了 希望尽可能的还是多给点分 好累..
?>

回答2:

你都已经的到数组了下来就是对数组进行编辑了。按照格式再重新构造新数组不就好了。取出每次执行的数组元素,截取其中需要的部分构造成新的数据就好了。用substr()