PHP Command Line Interface
目录
概述
PHP 提供了一种 CLI SAPI - Server Application Programming Interface
,服务端应用编程接口的支持,意为 CLI - Command Line Interface
,即命令行接口。也是 Web
脚本语言 PHP
在系统命令行(Shell
)下的另一种形式,用户可以在系统命令中使用 PHP
编写交互代码。
作用
开发外壳应用。
CLI SAPI 和其它 SAPI 模块的区别
- 与
CGI SAPI
不同,其输出没有任何头信息 CLI SAPI
强制覆盖了php.ini
中的某些设置,因为这些设置在外壳环境下是没有意义- 为了减轻外壳环境下的工作,定义了如下常量
名称 | 描述 | 备注 |
---|---|---|
STDIN | 一个已打开的指向 stdin 的流,调用方法:$stdin = fopen('php://stdin', 'r'); | |
STDOUT | 一个已打开的指向 stdout 的流,调用方法:$stdout = fopen(‘php://stdout’, ‘w’); | |
STDERR | 一个已打开的指向 stderr 的流, 调用方法:$stderr = fopen(‘php://stderr’, ‘w’); |
CLI SAPI
不会将当前目录改为已运行的脚本所在的目录
CLI SAPI 模块的三种运行方式
让 PHP 运行指定文件
|
|
在命令行直接运行 PHP 代码
|
|
通过标准输入 stdin 提供需要运行的 PHP 代码
PHP CLI 应用场景
多线程应用
- 使用多进程,子进程结束以后,内核会负责回收资源
- 使用多进程,子进程异常退出不会导致整个进程
Thread
退出,父进程还有机会重建流程 - 一个常驻主进程,只负责任务分发,逻辑理清楚
定时执行 PHP 程序
利用 Linux 的 crontab 命令,文件路径建议使用绝对路径。
|
|
|
|
开发桌面程序
使用 PHP CLI 和 GTK 包。