PHP CLI(Command Line Interface)是PHP的命令行接口模式,允许开发者脱离Web服务器环境,直接在终端中执行PHP脚本,常用于定时任务、后台脚本、工具开发等场景。

检查PHP CLI环境是否可用
在使用PHP CLI之前,需要先确认当前环境已经安装了PHP CLI版本,打开终端输入以下命令即可验证:
php -v
如果终端输出了PHP的版本信息,说明CLI环境已经正常安装。如果提示命令不存在,需要先安装PHP CLI组件,不同系统的安装方式略有区别:
- Ubuntu/Debian系统:执行
sudo apt-get install php-cli - CentOS/RHEL系统:执行
sudo yum install php-cli - Windows系统:需要确保PHP的安装路径已经添加到系统环境变量中
运行PHP代码的常见方式
直接执行PHP代码字符串
可以在命令行中直接传入PHP代码字符串执行,不需要创建脚本文件,适合快速测试简单逻辑:
php -r "echo 'Hello PHP CLI';"
执行后会直接输出Hello PHP CLI的结果。
运行PHP脚本文件
实际开发中更多是将PHP代码写在脚本文件中,再通过CLI运行。首先创建一个名为test.php的文件,内容如下:
<?php // 输出当前PHP运行模式 echo "当前运行模式:" . php_sapi_name() . PHP_EOL; // 输出传入的命令行参数 echo "第一个参数:" . ($argv[1] ?? '无参数') . PHP_EOL;
然后在终端中切换到脚本所在目录,执行以下命令运行脚本:
php test.php 测试参数
执行后会输出当前运行模式为cli,以及传入的第一个参数为测试参数。
将PHP脚本作为可执行文件运行
在Linux或macOS系统中,可以给PHP脚本添加执行权限,直接作为可执行文件运行。首先修改test.php的第一行,添加shebang声明:
<?php #!/usr/bin/env php echo "直接执行PHP脚本文件" . PHP_EOL;
然后给脚本添加执行权限:
chmod +x test.php
之后就可以直接通过./test.php命令运行脚本了。
PHP CLI常用参数说明
PHP CLI提供了很多实用的参数,常用的参数如下表所示:
| 参数 | 说明 |
|---|---|
| -v | 查看PHP版本信息 |
| -r | 直接执行后面跟随的PHP代码字符串 |
| -f | 指定要运行的PHP脚本文件,等同于直接写脚本路径 |
| -h | 查看所有CLI参数的帮助说明 |
| --ini | 查看PHP CLI的配置文件加载路径 |
PHP CLI的实际应用场景
- 定时任务:结合系统的crontab工具,执行定时数据备份、日志清理、数据统计等脚本
- 后台任务:处理耗时的业务逻辑,比如批量发送邮件、大文件处理等,避免阻塞Web请求
- 命令行工具开发:开发自定义的命令行工具,比如项目初始化脚本、代码生成工具等
- 快速调试:不需要启动Web服务器,直接测试PHP函数的执行结果和逻辑正确性
注意事项
PHP CLI模式和Web模式的配置是独立的,部分在php.ini中配置的参数,CLI模式和Web模式可能加载不同的配置文件,修改配置时需要注意区分。
在CLI模式下,$_GET、$_POST等Web相关的超全局变量是不生效的,获取命令行参数需要使用$argv数组或者getopt()函数。
<?php
// 使用getopt获取命令行选项参数
$options = getopt("n:a");
if (isset($options['n'])) {
echo "用户名称:" . $options['n'] . PHP_EOL;
}
执行php test.php -n 张三就会输出用户名称为张三。