PHP在命令行中传参的三种方式

admin 2022年4月26日05:37:37安全文章评论6 views921字阅读3分4秒阅读模式

### PHP在命令行中传参的三种方式

By:0x584A Date:2016-04-13 23:30:32

第一种 通过$argc or $argv

脚本内代码:

<?php   # $argc 接收参数的个数   echo "接收到{$argc}个参数";  # $argv 接收的具体参数   var_dump($argv);?>

在终端中直接运行,并接上参数。

php Ex_1.php 0x584A

执行结果:

接收到2个参数array(2) {   [0] =>   string(8) "Ex_1.php"   [1] =>   string(6) "0x584A" }
第二种 通过getopt()函数

脚本内代码:

<?php    /*     * getopt参数说明     * a 定义参数名 后面的:代表必选,与后面的值可以用空格分开     * ::代表可选项,与值之间不允许又空格     */     $param_arr = getopt('a:b::');     var_dump($param_arr);?>

在终端中直接运行,并接上参数。

php Ex_2.php -a 0x584A -bJk

执行结果:

array(2) {   'a' =>   string(6) "0x584A"   'b' =>   string(2) "Jk" }

如果我们输入的是:php Ex_2.php -a 0x584A -b 123

执行结果:'b' => bool(false)

因为-b参数中间有空格,则返回结果中接收不到该值。

第三种 使用CLI
常量名称 描述
STDIN 标准的输入设备
STDOUT 标准的输出设备
STDERR 标准的输出设备

脚本内代码:

<?php    # STDOUT 代表的标准输入 STDIN 代表的标准输出    fwrite(STDOUT,'请输入您的博客名称:');   # fwrite 表示往标准输出写字符串,fgets 命令行出现等待输入    $arg = trim(fgets(STDIN));   echo "您输入的名称:".$arg."n";?>

在终端中直接运行,并接上参数。

php Ex_3.php

执行结果:

请输入您的博客名称:jgeek.cn 您输入的名称:jgeek.cn

原文始发于微信公众号(一个人的安全笔记):PHP在命令行中传参的三种方式

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月26日05:37:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  PHP在命令行中传参的三种方式 http://cn-sec.com/archives/772024.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: