PHP命令行工具(CLI)可脱离Web服务器运行脚本,适用于定时任务与自动化运维。通过php -v确认环境,使用php script.php执行文件或php -r运行内联代码。$argc和$argv用于获取命令行参数,php -a进入交互式调试模式。结合-R处理文本流、php://stdin读取管道数据、exit()返回状态码,并关闭HTML错误输出提升效率。集成crontab实现定时任务,充分发挥PHP在系统级脚本中的灵活性与实用性。

PHP不只是用来开发网页的,它也能在命令行下运行脚本,非常适合做定时任务、数据处理、自动化运维等。使用PHP命令行工具(CLI)可以脱离Web服务器直接执行PHP代码,效率高且调试方便。下面介绍如何使用PHP命令行工具以及一些实用技巧。
启用PHP命令行模式
确保你的系统已经安装了PHP,并支持CLI模式。在终端输入以下命令查看是否可用:
php -v
如果显示PHP版本信息,说明CLI已就绪。如果没有,请先安装PHP或确认环境变量配置正确。
运行PHP脚本
最基础的操作是执行一个PHP文件。假设你有一个名为 script.php 的文件:
立即学习“PHP免费学习笔记(深入)”;
在命令行中运行:
php script.php
你将看到输出:Hello from CLI!
也可以不写文件,直接在命令行执行一段代码:
php -r 'echo date("Y-m-d H:i:s");'
注意:使用 -r 参数时不要加
读取命令行参数
在CLI环境下,PHP会自动定义两个全局变量:$argc 和 $argv。
- $argc:表示传入参数的数量(包括脚本名)
- $argv:是一个数组,包含所有参数
例如:
1) {
echo "Received: " . $argv[1] . "\n";
} else {
echo "No arguments provided.\n";
}
?>
运行:
php greet.php John
输出:Received: John
交互式执行与调试
使用 php -a 可进入交互式模式(REPL):
php -a
进入后可以直接输入PHP代码并立即看到结果,适合快速测试函数或表达式。
示例:
php > echo strrev("hello");
olleh
某些系统可能需要安装 readline 扩展才能使用高级交互功能。
实用技巧
掌握以下几个技巧能大幅提升命令行PHP的使用效率:
- 忽略标签简化执行:用 php -R 可对每行输入执行一次代码(类似awk),常用于处理文本流。
- 从标准输入读取:使用 php://stdin 接收管道数据。比如配合shell命令过滤日志。
- 返回退出状态码:脚本结束时用 exit(0) 表示成功,非零值表示错误,便于脚本调度判断。
- 避免输出HTML标签:CLI中不需要HTML格式,关闭错误显示中的HTML标签可设置 php -d html_errors=Off。
- 定时任务集成:结合Linux的crontab定期执行PHP脚本,如每天凌晨清理缓存。
基本上就这些。PHP命令行工具简单但强大,合理使用能让后端任务更灵活高效。关键是熟悉参数传递、输入输出控制和与系统命令的配合。不复杂但容易忽略细节。











