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

admin 2022年4月26日05:37:37评论16 views字数 921阅读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在命令行中传参的三种方式

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月26日05:37:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP在命令行中传参的三种方式http://cn-sec.com/archives/772024.html

发表评论

匿名网友 填写信息