概述PHP命令行shell_exec()使用 |
本文标签:PHP命令行 PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论PHP命令行 。PHP Command Line Interface (CLI) Server Application Programming Interface (SAPI) 在 PHP V4.2.0 开始发布,用于试验目的 。到 V4.3.0 时,已经受到完整支持并且默认启用 。
shell_exec() 命令行实际上仅是反撇号 (`) 操作符的变体 。如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出 。例如,清单 1 显示了如何使用反撇号在当前目录中获取每个文本(.txt)的单词计数 。 PHP命令行概述 清单 1. 使用反撇号计算单词数量
在您的 PHP 脚本中,您可以在 shell_exec() 中运行这个简单的命令,如清单 2 所示,并获取想要的结果 。这里假设在同一个目录下有一些文本文件 。 清单 2. 在 shell_exec() 中运行相同的命令
注意,仅使用后撇号操作符也会得到相同的结果,如下所示 。 清单 3. 仅使用后撇号操作符
清单 4. 更加简单的方法
通过 UNIX 命令行和 shell 脚本能够完成很多东西,知道这点很重要 。例如,您可以使用竖线将命令连接起来 。您甚至可以使用操作符在其中创建 shell 脚本,并且仅调用 shell 脚本(根据需要使用或不使用参数) 。例如,如果您仅希望计算该目录下的前 5 个文本文件的单词数,那么可以使用竖线 (|) 将 wc 和 head 命令连接起来 。另外,您还可以将输出结果放到 pre 标记内部,让它能够更美观地呈现在 Web 浏览器中,如下所示 。 清单 5. 更加复杂的 shell 命令
在本文的后面部分,您将学习如何使用 PHP 为这些脚本传递参数 。现在您可以将它看作运行 shell 命令的一种方法,但要记住您只能看到标准输出 。如果命令或脚本出现错误,您将看不到标准的错误 (stderr),除非您通过竖线将它添加到 stdout 。 |