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

I have a script connecting to a mikrotik router and reading traffic stats from it.

Here is my code:

$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++;  
   }  
}

The API response gives me output like <pppoe-0404> as $nodename
then this bit strips it down $nodename=substr($nodename,7,-1); to 0404 by stripping the first 7 and last 1 characters.

The problem occurs if there has been a cpe restart and $nodename becomes 0404-1. How do I strip -1 from the end if it appears?

I tried $nodename=rtrim($nodename, "-1"); but then all nodes ending with 1 would loose the last digit from name. 0401 would become 040 which is incorrect output.

There might be many other things to take into consideration, but to answer yor question, you could do something like this:

first check if there was a restart, then:

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