如何获得php系统功能的全部输出

时间:2012-07-31 06:37:08

标签: php linux

我想在linux上使用php获取我网络的所有路由器列表。 我已经尝试过php exec和系统功能,但它只在输出中提供一个路由器。

如何获取路由器的完整列表?

$last_line = system('iwlist scan', $retval);
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;

$last_line = system('iwlist scan | grep ESSID', $retval);

echo '

<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;

2 个答案:

答案 0 :(得分:1)

使用passthru检索所有输出。

您必须了解此处需要考虑不同的输出流:

  • iwlist可能会在上生成文字(由于其他不支持无线的接口)
  • grep只会通过
  • 中的管道接收输出
  • passthru将从iwlistgrep收到

您可以重定向输出,以便只获得已经grep的成功输出。然后整个事情变成:

echo passthru('iwlist scan 2>/dev/null | grep ESSID');

答案 1 :(得分:0)

您可以使用exec()代替systemexec()的第二个参数是(可选)数组。命令返回的每一行输出都将在该数组中。

$output = array();
exec('iwlist scan', $output, $retval);
print_r($output);