fgets的输出与文件的格式不匹配

时间:2015-11-23 12:21:12

标签: php shell filestream fopen fgets

我尝试将linux命令ifconfig的输出保存到变量中并在我的html中显示它。我有两个页面,一个test.html和一个ajax.php。如果我点击test.html上的链接,那么会向ajax.php发出ajax请求,执行ifconfig并将结果发送回test.html,其中body标签的整个html被替换为输出。

我的ajax.php中有此代码。如您所见,我将ifconfig的输出写入文件,因此我可以从文件流中读取每一行并输出它们。

shell_exec ("/sbin/ifconfig > /tmp/ifconfig 2>&1");
$ifconfig = fopen("/tmp/ifconfig","r") or die ("Unable to open file '/tmp/ifconfig'"); 

while(!feof($ifconfig))
{     
    echo fgets($ifconfig). "<br>";     
}

fclose($ifconfig);

但不是像这样的输出:

 eth0      Link encap:Ethernet  HWaddr 0A:58:C2:71:7A:90  
           inet addr:172.15.47.121  Bcast:172.25.255.255  Mask:255.255.0.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:238319 errors:0 dropped:0 overruns:0 frame:0
           TX packets:122439 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:21355179 (20.3 MiB)  TX bytes:19679738 (18.7 MiB)

我得到了这个输出:

eth0 Link encap:Ethernet HWaddr 0A:58:C2:71:7A:905
inet addr:172.15.47.121 Bcast:172.15.255.223 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:23405 errors:0 dropped:14 overruns:0 frame:0
TX packets:16390 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1613474 (1.5 MiB) TX bytes:19949404 (19.0 MiB)

有人可以告诉我如何以与实际格式相同的格式获取输出吗? 注意:地址不实,我改了。

0 个答案:

没有答案