我有一个脚本连接到mikrotik路由器并从中读取流量统计信息。
这是我的代码:
$y = 0;
foreach ($ARRAYD as $d) {
$nodename=$ARRAYD[$y]['target'];
//$nodename=trim($nodename);
$nodename=substr($nodename,7,-1);//
//$nodename=rtrim($nodename, "-1");
$traff_bytes=$ARRAYD[$y]['bytes'];
$byte_values = preg_split('/\//',$traff_bytes);
if ($debug==0) {
$fr = fopen($myfile.$nodename,"w");
fwrite($fr,$nodename." ");
fwrite($fr,time()." ");
fwrite($fr,$byte_values[0]." ");
fwrite($fr,$byte_values[1]."");
fclose($fr);
$y++;
}
}
API响应为<pppoe-0404>
提供了$nodename
的输出
然后通过剥离前7个和后1个字符,将此位向下$nodename=substr($nodename,7,-1);
剥离到0404
。
如果cpe重新启动并且$nodename
变为0404-1
,则会出现此问题。如果出现,我如何从最后剥离-1
?
我尝试$nodename=rtrim($nodename, "-1");
但是所有以1
结尾的节点都会从名称中删除最后一位数字。 0401
将成为040
输出错误。
答案 0 :(得分:1)
可能还有许多其他事情需要考虑,但回答问题,你可以这样做:
first check if there was a restart, then:
$nodename = explode("-", $nodename);
$nodename = $nodename[0];