首页 > php学习 > PHP的命令行操作
2020
03-04

PHP的命令行操作

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 <addr>:<port> : 运行内建的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文件

<?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

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。