exec函数不返回所有行

时间:2011-06-14 05:01:20

标签: php exec

我的awk命令按预期工作,并在命令提示符处返回2行。

当我使用php“exec”函数时,它只返回第二行。

echo exec("awk -v RS=\",\" '/some_text/' test1.html");

如何使用PHP返回shell命令的所有输出?

1 个答案:

答案 0 :(得分:18)

  

如果存在输出参数,则指定的数组将填充命令的每一行输出。尾随空格(例如\ n)不包含在此数组中。请注意,如果数组已包含某些元素,则exec()将附加到数组的末尾。如果您不希望函数附加元素,请在将数组传递给exec()之前调用数组上的unset()。

http://php.net/manual/en/function.exec.php

$out = array();
exec("awk -v RS=\",\" '/some_text/' test1.html", $out);
foreach($out as $line) {
    echo $line;
}