PHP作为一门web开发语言,通常情况下我们都是在Web Server中运行PHP,使用浏览器访问,因此很少关注其命令行操作以及相关参数的使用,但是,特别是在类Unix操作系统上,PHP可以作为一门脚本语言执行与shell类似的处理任务。
在文件脚本中,可以通过php_sapi_name()函数获取该脚本文件的运行环境,如在命令行下该函数返回'cli',在浏览器该函数返回"cgi-fcgi"(不同的环境配置可能显示不同)
-a:以交互式shell模式运行,可以执行一些简单的任务,而不需要新建一个php文件。
-c:指定php.ini文件所在的目录
-n:指定不使用php.ini文件
-d foo[=bar]:定义一个INI实体,key为foo,value为'bar'
-e:为调试和分析生成扩展信息
-f:解释和执行文件
-h:打印帮助
-i:显示PHP的基本信息
-l:进行语法检查 (lint)
-m:显示编译到内核的模块
-r:运行PHP代码,不需要使用标签<?php.. ?>
-t:指定用于内建web服务器的文档根目录(默认当前目录为根目录)
-s:输出HTML语法高亮的源码
-v:输出PHP的版本号
-w:输出去掉注释和空格的源码
-z:载入Zend扩展文件
-B:在处理输入之前先执行PHP代码
-E:处理完所有输入行后运行PHP
-F:对每个输入行进行分析和执行
-H:隐藏外部工具传递的任何参数。
-R:对输入的每一行作为PHP代码运行
-S : : 运行内建的web服务器.
--ini:显示PHP的配置文件名
–ini:显示当前PHP的配置文件信息
–info:显示php的信息(显示函数phpinfo()全部的输出信息,比较乱,一般配合管道符和grep命令使用)
--rf:显示关于函数的信息
--rc:显示关于类的信息
--re:显示关于扩展的信息
--rz:显示关于Zend扩展的信息
--ri:显示扩展的配置信息
在web程序中,我们可以通过改变url的参数,为PHP环境提供不同的输入,但是在命令行脚本程序中如何获取外部的输入呢?在PHP中,提供了两个全局变量$argv和$argc用于获取命令行输入参数(这两个全局变量仅在命令行执行时有效)。
$argv是一个数组,包含了提供的参数,第一个参数总是脚本文件名称
$argc是$argv数组元素的数量
如:现有一个demo.php文件
echo '命令行参数个数:'.$argc."\n";
var_dump($argv);
}
在命令行下执行该脚本
php -f D:\wwwroot\test\11.php one two
命令行参数个数:3
array(3) {
[0]=>
string(6) "D:\wwwroot\test\11.php"
[1]=>
string(3) "one"
[2]=>
string(3) "two"
}
需要注意的是,如果提供的第一个参数是以-开头的话,需要在前面增加–,以告诉php后面是提供给脚本的参数,如php -f D:\wwwroot\test\11.php - -one two
最后编辑:2020-03-04作者:qingheluo
这个作者貌似有点懒,什么都没有留下。