PHP从字符串中删除预定义的字符

时间:2016-02-18 14:25:25

标签: php mikrotik

我有一个脚本连接到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输出错误。

1 个答案:

答案 0 :(得分:1)

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

first check if there was a restart, then:

$nodename =  explode("-", $nodename);
$nodename = $nodename[0];