php命令行模式
配置PHP环境变量
这里以ubuntu下zsh的环境变量配置举例。
笔者在ubuntu下直接安装了xampp,所以就不再单独安装php了。找到php的位置。如下:
得到php的路径为/opt/lampp/bin
,直接该路径添加到PATH中。我这里用的是zsh,需要编辑~/.zshrc
.如果是bash,则编辑~/.bashrc
如下图所示:
编辑完后,执行source ~/.zshrc
.
执行php -v
.如果出现如下信息,则表示php环境变量配置成功.
对于windows下面,与ubuntu下的方法类似,只需要读者找到php.exe的位置,然后在系统的环境变量中将对应的路径配置到PATH最后即可。具体不再详述。
详解PHP命令行参数
这部分内容不少都是引用了php的官方文档,如果觉得我这里说的有问题的地方可以直接参考php官方文档
php cli的由来
从版本 php 4.3.0 开始,PHP 提供了一种新类型的 CLI SAPI(Server Application Programming Interface)
支持,该CLI SAPI
模块主要用作 PHP 脚本程序的开发。除了CLI之外还有CGI也属于SAPI,尽管CLI和CGI之间有很多共同的行为,但是CLI和CGI是不同的 SAPI。
CLI和CGI的区别在于:
- CLI的输出没有任何(HTTP)头信息。CLI 默认以静默模式运行的,但为了保证兼容性,
-q
和--no-header
参数为了向后兼容仍然保留,使得可以使用旧的 CGI 脚本。CLI在运行时,不会把工作目录改为脚本的当前目录(可以使用-C
和--no-chdir
参数来兼容 CGI 模式)。CLI出错时输出纯文本的错误信息(非 HTML 格式)。 - CLI SAPI 强制覆盖了 php.ini 中的某些设置,因为这些设置在脚本环境下是没有意义的,如下:
设置选项 | CLI SAPI 默认值 | 备注 |
---|---|---|
html_errors | FALSE | 无意义的 HTML 标记符会使得出错信息很凌乱,所以在脚本程序下阅读报错信息是十分困难的。因此将该选项的默认值改为 FALSE。 |
implicit_flush | TRUE | 在CLI模式下,所有来自 print 和 echo 的输出将被立即写到输出端,而不作任何地缓冲操作。如果希望延缓或控制标准输出,仍然可以使用 output buffering 设置项。 |
max_execution_time | 0(无限值) | 鉴于在脚本环境下使用 PHP 的无穷的可能性,最大运行时间被设置为了无限值。为 web 开发的应用程序可能只需运行几秒钟时间,而脚本应用程序的运行时间可能会长的多。 |
register_argc_argv | TRUE | 由于该设置为 TRUE,将总是可以在 CLI SAPI 中访问到 argc(传送给应用程序参数的个数)和 argv(包含有实际参数的数组)。除了通过argc、argv之外也可以通过$_SERVER[‘argc’]、$_SERVER[‘argv’]来访问argc和argv |