PHP怎么获取命令行参数

  介绍

这篇文章主要介绍了PHP怎么获取命令行参数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

PHP的框架有哪些

PHP的框架:1,Laravel, Laravel是一款免费并且开源的PHP应用框架。2,Phalcon, Phalcon是运行速度最快的一个PHP框架。3,Symfony, Symfony是一款为Web项目准备的PHP框架。4,Yii, Yii是一款快速、安全和专业的PHP框架。5,CodeIgniter, CodeIgniter是一款非常敏捷的开源PHP框架。6,CakePHP, CakePHP是一款老牌的PHP框架1:8)。Kohana, Kohana是一款敏捷但是功能强大的PHP框架。

使用PHP开发的同学多少都会接触过CLI命令行。经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的GET、POST一样为这些命令行脚本提供参数。比如在针对某些日期做统计的脚本,就需要传递一个日期给它,这样我们就统计指定日期的一些数据。

$ argv获得所有空格分隔的参数列表

这个变量估计是大家用得比较多的一个接参变量了。它是PHP为我们准备好的一个固定变量,目的就是获取传递给脚本的参数数组。

print_r ($ argv);//,php 如何获取PHP命令行参数.php , a=1, b=2, c=3, - d=4,, e=5, ccc  ddd //数组//,//,,,,,[0],=祝辞,如何获取PHP命令行参数。PHP//,,,,,[1],=祝辞,a=1//,,,,,[2],=祝辞- b=2//,,,,,[3],=祝辞- c=3//,,,,,[4],=祝辞- d=4//,,,,,[5],=祝辞,e=5//,,,,,[6],=在ccc//,,,,,[7],=在ddd//,)

这个数组是以参数间隔的空格进行分隔的。第1个元素是当前运行的脚本文件名,也就是说,不管有没有参数,这个变量一定会有一个$ argv[0]表示的是当前的脚本文件名。

在日常的开发需求中,其实使用这个变量就已经够用了。但是这明显不会是我们今天的主题,大家注意到上面的代码中我们有很多参数是- x=xxx的形式,这种形式的参数是不是和Linux的命令选项非常像,没的错,这就是我们今天要重点介绍的:从命令行参数列表中获取选项。

getopt()从命令行参数列表中获取选项

其实就是这样一个简单的函数,我们就可以像Linux的命令选项一样获取指定的命令值。而且不是像$ argv按空格进行分隔,命令选项函数会将这些命令选项封装成数组,组成以选项名为键,以等号后面的内容为值的数组,更加方便我们的使用。

//, php 如何获取php命令行参数.php , a=1, b=2, c=3, - d=4,, e=5, ccc  ddd    print_r (getopt (& # 39; a: b: c: d: e: f: & # 39;));//数组//,//,,,,,(b),=祝辞;2//,,,,,(c),=祝辞;3//,,,,,[d],=祝辞;4//,)

是不是很神奇,而且非常直观吧,我们直接就拿到了b, c, d的内容并且是格式非常清晰的键值数组形式,有同学要问了,一个和e呢?还有后面的ccc、ddd呢?

首先要说明的是,ccc和ddd不是标准的选项参数,也就是说,这个函数接收的内容是以——开头的选项,所以ccc和ddd不会在这里输出,并且需要注意的是,非选项参数会中断选项参数的获取,在ccc之后如果继续添加——开头的选项也是无法获取到的,这个我们后面还会看到。而——开头的选项参数呢?我们直接看下面的长选项功能。

长选项

//, php 如何获取php命令行参数.php , a=1, b=2, c=3, - d=4,, e=5, ccc  ddd    print_r (getopt (& # 39; & # 39;,, (& # 39;: & # 39;, & # 39; b: & # 39;, & # 39; c: & # 39;, & # 39; d: & # 39;, & # 39; e: & # 39;, & # 39; f: & # 39;]));//数组//,//,,,,,(一个),=在1//,,,,,(e),=祝辞;5//,)

没错,getopt()函数的第二个参数就是定义这种——开头的长选项的,而且需要注意的是,第一个参数是字符串类型,第二个长选项参数是数组类型的。那么我们把它们结合起来,就当然可以获取到全部的参数信息啦!

//, php 如何获取php命令行参数.php , a=1, b=2, c=3, - d=4,, e=5, ccc  ddd    print_r (getopt (& # 39; a: b: c: d: e: f: & # 39;,, (& # 39;: & # 39;, & # 39; b: & # 39;, & # 39; c: & # 39;, & # 39; d: & # 39;, & # 39; e: & # 39;, & # 39; f: & # 39;]));//数组//,//,,,,,(一个),=在1//,,,,,(b),=祝辞;2//,,,,,(c),=祝辞;3//,,,,,[d],=祝辞;4//,,,,,(e),=祝辞;5//,)

好的,参数选项获取没问题了吧,细心的同学肯定又发现了一个问题,这个getopt()函数的参数中定义的选项名称后面为啥都要加个冒号?这就涉及到我们的冒号规则了,请直接往下看。

冒号规则

getopt()的前两个参数都支持一套关于选项获取的规则:

PHP怎么获取命令行参数