这篇文章介绍了几个功能(除了反引号执行操作符之外),这些功能用于通过PHP脚本执行系统级程序。尽管乍一看它们看上去在操作上都是相同的,但每个语法都有自己的细微差别。
exec()
string exec (string command [, array output [, int return_var]])
该exec()功能最适合于执行旨在在服务器后台继续执行的操作系统级应用程序(由命令指定)。尽管将返回最后一行输出,但是您很可能希望将所有输出都返回以进行检查;您可以通过包括可选的参数输出来做到这一点,在完成由指定的命令后,将在输出的每一行中填充该参数exec()。另外,您可以通过包含可选参数return_var来发现执行的命令的返回状态。
尽管我们可以通过简单的方法来演示如何exec()执行ls命令(Windows专业人员的目录),并返回目录列表,但提供一些更实际的示例会提供更多信息:如何从中调用Perl脚本PHP。考虑以下Perl脚本(count.pl):
#!/ usr / bin / perl
我的@words = qw [一二三四五];foreach $word(@words){
打印$word。”
“;
}
Perl脚本非常简单。不需要第三方模块,因此您可以花费很少的时间测试该示例。如果您正在运行Linux,则很有可能立即运行此示例,因为Perl已安装在每个受好评的发行版上。
如果您正在运行Windows,请签出ActiveStates(http://www.activestate.com/)ActivePerl分发。
结果如下:
perl php python java c
system()
string system (string command [, int return_var])
system()当您要输出执行的命令的结果时,此功能很有用。与其通过可选参数返回输出(而不是像一样),而是将输出exec()直接返回给调用者。但是,如果您想查看被调用程序的执行状态,则需要使用可选参数return_var指定一个变量。
例如,假设您要列出位于特定目录中的所有文件:
$myimages = system(“ ls -1 / home / user / images /”);
或者,修改先前的PHP脚本以再次调用count.plusing system():