0

我有一个脚本连接到 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
然后这个位$nodename=substr($nodename,7,-1);通过0404剥离前 7 个和最后 1 个字符将其剥离。

如果 cpe 重新启动并$nodename变为0404-1. -1如果它出现,我如何从最后剥离?

我试过$nodename=rtrim($nodename, "-1");了,但所有以结尾的节点1都会丢失名称的最后一个数字。0401将成为040不正确的输出。

4

1 回答 1

1

可能还有很多其他的事情需要考虑,但要回答你的问题,你可以这样做:

first check if there was a restart, then:

$nodename =  explode("-", $nodename);
$nodename = $nodename[0];
于 2016-02-18T14:46:03.313 回答