background image

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() 命令的结果