PHP 命令行工具的常用选项详解
PHP CLI 常用选项详解
-f <file>
:运行脚本文件
php -f script.php
等同于:
php script.php
执行指定的 PHP 文件。
-r <code>
:运行一段 PHP 代码
php -r 'echo "Hello World\n";'
可快速运行一小段代码,不需要加
<?php
标签。
-a
:交互式模式(Interactive Shell)
php -a
启动一个 REPL(读取-执行-打印-循环)环境,适合测试代码片段。
-S <addr>:<port>
:启动内建 Web 服务器
php -S 127.0.0.1:8000
用于开发环境调试,默认当前目录为文档根目录(可配合
-t
使用)。
-t <docroot>
:指定 Web 根目录
php -S localhost:8000 -t public/
配合
-S
使用,设定文档根目录。
-c <path>|<file>
:指定 php.ini
路径
php -c /etc/php/8.1/cli/php.ini script.php
用于指定 PHP 的配置文件路径。
-n
:忽略所有配置文件(不加载 php.ini
)
php -n -r 'phpinfo();'
完全跳过配置文件的加载,适用于安全测试或环境隔离。
-d foo[=bar]
:临时设置配置项
php -d display_errors=On -d error_reporting=E_ALL script.php
在运行脚本时设置
php.ini
配置项。
-i
:显示完整的 PHP 配置信息
php -i
相当于执行
phpinfo()
,可以用于查看环境和扩展等信息。
-m
:列出已加载模块(扩展)
php -m
可查看已启用的扩展模块,例如
curl
,mbstring
,pdo
等。
-l
:只进行语法检查(Lint)
php -l script.php
检查脚本语法,不执行任何代码。常用于 CI 自动检查。
-v
:显示 PHP 版本信息
php -v
显示当前 CLI 使用的 PHP 版本和 Zend 引擎版本。
--ini
:查看配置文件位置
php --ini
显示当前加载的
php.ini
文件和额外配置路径。
-B/-E/-R/-F
:流处理相关选项(高级用法)
-
-R <code>
:对每一行输入执行一次 PHP 代码。 -
-F <file>
:对每一行输入执行 PHP 文件。 -
-B <code>
:在处理前执行的初始化代码。 -
-E <code>
:在处理完所有行后执行的结束代码。
示例:
cat names.txt | php -R 'echo strtoupper($argn)."\n";'
对输入的每一行执行
strtoupper()
。
-z <file>
:加载 Zend 扩展
php -z /path/to/xdebug.so
用于动态加载
.so
格式的 Zend 扩展。
--rf/--rc/--re/--ri
:查看函数/类/扩展信息
php --rf strlen # 查看函数 strlen 的信息
php --rc DateTime # 查看 DateTime 类的结构
php --re json # 查看 json 扩展
php --ri curl # 查看 curl 扩展的配置
适用于代码分析、调试和学习标准库。
✅ 常见组合示例
-
启动 Web 服务调试项目:
php -S 0.0.0.0:8080 -t public
-
快速测试代码片段:
php -r 'echo date("Y-m-d H:i:s");'
-
调试错误时开启显示:
php -d display_errors=1 script.php
-
只检查语法是否正确:
php -l your_script.php