PHP 命令行完全解读
当然,只是可以 在命令行中使用 PHP 当然不是这样做的最佳理由。但是,在开始以这种方式用 PHP 进行试验时可能很快就会发现调试现有脚本将变得前所未有地简单。由主要输出和极少逻辑组成的 PHP 程序都将变得令人难以置信地简单。除此之外,还可以使用所有 PHP 知识来完成以前从未想过使用 PHP 完成的任务。事实上,确实没有任何事能阻止您使用 PHP 作为几乎所有给定编程项目的全能王。
安装
安装十分简单扼要,它甚至可能都不需要特别安装任何内容。开始时先在命令行中尝试一个简单的 PHP 脚本。您可以使用现有 PHP 脚本,也可以尝试使用以下代码。本例是基于 Linux 的,但是类似的原理也适用于其他系统。
首先,确认 PHP 可执行文件的位置 —— 对于大多数 Linux 系统,几乎肯定是 /usr/bin/php。如果不确定其位置,请在命令行中键入 which php 并查看响应内容。
其次,键入以下代码,确保将 /usr/bin/php 替换为 PHP 可执行文件的实际路径。
#!/usr/bin/php -q
Hello world
保存文件并确保用可执行权限做了标记。在大多数系统中,您都可以用 chmod +x hello-world 或类似代码完成此操作。然后,执行 PHP 文件(通过运行 ./hello-world 或者,如果有必要,运行 php hello-world),并查看它是否运行。如果它运行,则安装的 PHP 在默认情况下会包括命令行功能。
如果代码未能正确运行,事情可能会变得有点儿麻烦。关于原因有很多种不同的可能性。如果您得到一个与 PHP 相关的错误(除了 “未找到程序” 之类的结果),则问题是代码中的输入错误。如果未找到 PHP 可执行文件,请确保您使用了正确的路径。如果没有名为 PHP 的可执行文件,则必须获得一个。
获得 PHP 可执行文件可能根据所在系统的不同采取不同的步骤,但是获得所需支持不应当太难。您可以从查阅针对特定操作系统或发行版的文档开始。
很明显,如果这时系统中未安装 PHP,则先安装 PHP,然后再次尝试执行以上代码。对于许多系统,安装 PHP 是您需要做的全部操作。如果需要执行更多操作,有时只需使用您最喜欢的包管理工具(例如 apt-get 或 yum)获得 PHP CLI 包(名称可能略有不同)就可以解决此问题。
如果在 PHP 包管理工具中未能找到命令行,最糟糕的情况是您可以用 --enable-cli 标记重新编译 PHP。事实上,这样做的优点是提供了稍微优化了的系统并且不管怎么说都不是个坏主意。无论采用哪种方式,开始使用它都不应当太难。
到现在,您应当已经运行了 HelloWorld 脚本,并且输出就是可能已经猜测到的结果。我不会详细说明该脚本的工作原理,但是使用过 shell 脚本和 PHP 的人应当十分熟悉脚本的大部分内容。由于这第一个脚本现在的运行没有出现任何问题(我们希望如此!),因此我们将略微偏离真正的命令行接口 (CLI) 应用程序,看一看为什么在命令行中使用 PHP 对于所有 PHP 程序员来说都是最佳选择的好理由:调试。
PHP 调试
可能只有我有这种体验,但是我经常发现调试 CLI 程序会演变成一场噩梦,尤其是处理嵌入了 HTML 的脚本,例如 Microsoft® Active Server Pages (ASP) 或 PHP。通常很难判断特定错误消息所表达的精确含义,用户输入可能很难再次生成,并且整件事通常会使您头痛的希望拔光头发。
不幸的是,虽然足够聪明的程序员可以找到 CLI 能够有所帮助的方法(例如,通过从文件读取输入或通过一个通道的另一个程序),但是大部分问题都不会由于使用命令行而显著减弱。不过,CLI 确实使一件事变得更加简单:找到错误消息,以便可以在第一位置读取这些错误消息。
为了查看使用命令行调试的值,让我们从下面所示的非常非常糟糕的 PHP 文件开始。
#!/usr/bin/php -q
Don<'t>code<?php while drunk(); ?<