我试图从ifconfig中获取一些数据,但我只得到存储在变量中的第一行。
我跑

//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()从$wlantest中删除字符,但没有成功。

最佳答案

首先,确保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而不是ETH的行,然后尝试使用此行替换换行符$ethTest = preg_replace("/\r\n|\r|\n/",'',$ethTest)

10-08 13:08