mikrotik — PHP удаляет предопределенные символы из строки

У меня есть скрипт подключения к роутеру 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 что неверный вывод.

0

Решение

Там может быть много других вещей, чтобы принять во внимание, но чтобы ответить на ваш вопрос, вы можете сделать что-то вроде этого:

first check if there was a restart, then:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]