echo "<pre>".$results . "</pre>";
?>
图 2
演示了运行清单 5 的脚本得到的结果。
图 2.
从 shell_exec()
运行更复杂的 shell 命令得到的结果
在本文的后面部分,您将学习如何使用 PHP 为这些脚本传递参数。现在您可以
将它看作运行 shell 命令的一种方法,但要记住您只能看到标准输出。如果命令或脚本出
现错误,您将看不到标准的错误 (stderr)
,除非您通过竖线将它添加到 stdout。
passthru()
passthru()
允许您运行外部程序,并在屏幕上显示结果。您不需要使用 echo
或 return 来查看结果;它们会显示在浏览器上。您可以添加可选的参数,即保存从外部
程序返回的代码的变量,比如表示成功的 0,这为调试提供更好的机制。
在清单 6
中,我使用 passthru() 命令运行在前面小节运行的单词计数脚本。如
您所见,我还添加一个包含返回代码的 $returnval 变量。
清单 6.
使用 passthru() 命令运行单词计数脚本
<?php
passthru('wc -w *.txt | head -5',$returnval);
echo "<hr/>".$returnval;
?>
注意,我不需要使用 echo 返回任何东西。结果会直接显示在屏幕上,如下所
示。
图 3.
使用 return
代码运行 passthru() 命令的结果