Не удается удалить разрывы строк в php shell_exec () returnvalue

1

Я пытаюсь захватить некоторые данные из ifconfig, но я получаю только строку frist, хранящуюся в моей переменной.

я бегу

//First off, find out whether we're using eth or wlan
$wlanTest = shell_exec('/sbin/ifconfig wlan|egrep -o "wlan|inet addr:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|RUNNING"');
$log = "| contents of wlan test: " . $wlanTest;
echo $log;
myLog($log);

Я получаю только первую строку ответа. Полный ответ:

eth
inet addr:192.168.99.193
RUNNING

Но все, что я получаю в своей переменной, - это

eth

Я попытался с помощью php implode() и str_replace() удалить \n символов из $ wlanTest, но не повезло.

  • 0
    Вы пытались заменить / на //?
  • 0
    Нет, это специальный символ разрыва строки в командной строке linux? Я знал только \ n о переводе строк в Linux.
Теги:
exec
line-breaks

1 ответ

0

Прежде всего убедитесь, что shell_exec() возвращает вам все данные, которые вам нужны с var_dump потому что я вижу, что вы командуете

egrep -o "wlan|inet addr:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|RUNNING"

выберите строки с помощью wlan not eth, а затем попытайтесь использовать это для замены разрывов строк $ethTest = preg_replace("/\r\n|\r|\n/",'',$ethTest)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню