位置: 编程技术 - 正文

php cli模式下获取参数的方法(php in)

编辑:rootadmin

推荐整理分享php cli模式下获取参数的方法(php in),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php include path,php的cli模式,php的cli模式,phpinclude,php-cli模式,php的cli模式,phpinclude,php-cli,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP在cli模式下接收参数有两种方法

1.使用argv数组

2.使用getopt方法

1.使用argv数组

例如:需要执行一个php,并传递三个参数(type=news, is_hot=1, limit=5)

创建test.php

在命令行执行

php test.php news 1 5

输出:

可以看到argv[0]为当前执行的php文件名称,而argv[1]~argv[3]则是传递的参数的值

argv[1]等于type的值

argv[2]等于is_hot的值

argv[3]等于limit的值

这样可以根据argv数组来获取传递的参数进行后续的处理操作。

缺点:

使用argv数组,可以按顺序获取传递的参数。但获取后,需要做一个对应处理,上例中需要把argv[1]对应type参数,argv[2]对应is_hot参数,argv[3]对应limit参数。而如果在传递的过程中,参数顺序写错,则会导致程序出错。

例如:

执行

php test.php news 1 5

输出:

而传递顺序不同,获取到的参数数值会不同,导致后续程序出错

执行

php test.php 1 5 news

输出:

因此在使用argv数组传递参数时,需要注意参数传递的顺序。

2.使用getopt方法

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

array getopt ( string $options [, array $longopts ] )

参数:

options

该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 “x” 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。

php cli模式下获取参数的方法(php in)

longopts

选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(?)传入到脚本的选项。 例如,长选项元素 “opt” 识别了一个选项 ?opt。

options 可能包含了以下元素:

单独的字符(不接受值)

后面跟随冒号的字符(此选项需要值)

后面跟随两个冒号的字符(此选项的值可选)

选项的值是字符串后的第一个参数。它不介意值之前是否有空格。

options 和 longopts 的格式几乎是一样的,唯一的不同之处是 longopts 需要是选项的数组(每个元素为一个选项),而 options 需要一个字符串(每个字符是个选项)。

传值的分隔符可以使用空格或=。

可选项的值不接受空格作为分隔符,只能使用=作为分隔符。

返回值

此函数会返回选项/参数对,失败时返回 FALSE。

选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃。

1.使用options实例

a,b,c 为需要值

d 为可选值

e 为不接受值

执行

php test.php -a 1 -b 2 -c 3 -d=4 -e 5

输出:

2.使用longopts实例

type,is_hot 为需要值

limit 为可选值

expire 为不接受值

执行

php test.php --type news --is_hot 1 --limit= --expire=

输出:

3.找到第一非选项,后面忽略实例

执行

php test.php --type news --is_hots 1 --limit= --expire=

输出:

因为is_hots不是选项值(定义的是is_hot),所以从这里开始之后的参数,都被丢弃。

总结:

使用argv数组传参数,方法简单,实现方便。参数的顺序不能错,参数获取后需要做对应处理。

使用getopt方法,可使用参数名,参数顺序可随意,比较规范。(建议使用)

标签: php in

本文链接地址:https://www.jiuchutong.com/biancheng/290922.html 转载请保留说明!

上一篇:PHP+jQuery实现滚屏无刷新动态加载数据功能详解(jquery 滚动条)

下一篇:php 查找数组元素提高效率的方法详解(php 查找数组元素)

  • 个人独资企业要注意什么
  • 税中税是多少
  • 递延收益影响当期损益吗
  • 应收账款增值税专用发票
  • 清算固定资产处置方案
  • 17%增值税发票怎么计算成13%
  • 融资租赁的固定资产由承租方进行核算,体现了( )原则
  • 购货发票未到
  • 建筑公司工地买空调
  • 小规模纳税人月末结转增值税
  • 12月的工资啥时候发
  • 年底增值税有余额吗
  • 发票专用章能刻章吗
  • 一般户有没有开户许可证
  • 公司注销其他应收款怎么冲平
  • 自然人个人能否纳税
  • 公司税务风险怎么解决
  • 办公室房租属于什么费用
  • 个人独资企业生产经营费用与家庭生活费用
  • 退税收入要不要交所得税?
  • 核定征收印花税计算公式
  • 在建工程的施工方案可以外传吗
  • 公司餐饮费怎么做账
  • 高新技术企业研发人员比例要求
  • 原材料进项税税率
  • PHP:oci_num_rows()的用法_Oracle函数
  • 处置子公司属于调整事项吗
  • linux 创建sh
  • 2020工资计税基数怎么算
  • 农产品专票可以开零税率吗
  • neoCopy.exe - neoCopy是什么进程 有什么用
  • 用友预收货款账务处理
  • 拉德克里夫图书馆
  • 国债持有期间未兑付的利息所得税
  • 收到现金货款存入银行会计分录
  • php错误和异常
  • laravel框架最新版本
  • 关税组成计税价格公式推导
  • react useref获取dom元素
  • php curlfile
  • rm -rf/指令指删除什么
  • 企业年报分析的内容包括哪些方面
  • mysql正则表达式匹配数字
  • 企业当期营业收入的计算
  • 结转以前年度成本分录怎么写
  • 个贷系统平账专户a户为啥扣钱
  • 长期股权投资与其他权益工具投资的区别
  • 服务费可以计入主营业务成本吗
  • 汇算清缴补缴税款会计分录
  • 红冲发票重开一定要一样的金额吗?
  • 应交增值税进项税额转出账务处理
  • 股东撤资后需要承担责任
  • 公司的软件服务器设置什么意思啊
  • 什么公司转让需要交税
  • 影视行业成本核算方案
  • 固定资产盘点表excel
  • mysql5.7.20安装
  • mysql输入密码命令
  • win8.1关机没反应
  • win8系统运行慢怎么办
  • windows xp升级为windows 7
  • windows快速预览
  • unix命令大全
  • win7系统怎么禁用开机启动项
  • win7系统打开excel文件很慢或未响应
  • Android 让EditText失去焦点避免自动弹出输入法
  • 怎样从零开始
  • angularjs2
  • suse linux 网络配置
  • python数字运算规则
  • 类似愤怒小鸟的小游戏
  • android:padding="10dp"
  • 基于jQuery Ajax实现上传文件
  • jquery input
  • c#string stringbuilder
  • 欢迎使用微信支付
  • rst.open
  • 企业如何在网上申请缴税三方协议
  • 金坛归属南京
  • 广东省电子税务局app下载官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设