51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Thinkphp中CLI模式下接收参数的几种方式

一、argv 方式

                    
                      
                        php
                      
                      
                        test
                      
                      
                        .php
                      
                      
                        news
                      
                       1 5
                    
                  
                      //变量仅在 register_argc_argv 打开时可用。
print_r($argc); //CLI下获取参数的数目,最小值为1
print_r($argv); //CLI下传递给脚本的参数数组,第一个参数总是当前脚本的文件名,因此 $argv[0] 就是脚本文件名
//结果
Array
(
    [0] => test.php
    [1] => news
    [2] => 1
    [3] => 5
)

二、getopt 方式

                      php test.php -a 1 -b 2 -c 3 -d=4 -e 5
                    
                  
                    
                      $param = getopt('a:b:c:d::e');
print_r($param);

//结果

`Array
(
[a] => 1
[b] => 2
[c] => 3
[d] => 4
[e] =>
)
`

三、longopts 方式

                      php test.php --type news --is_hot 1 --limit=10 --expire=100
                    
                  
                    
                      $longopt = array(
    'type:',
    'is_hot:',
    'limit::',
    'expire'
);
$param = getopt('', $longopt);
print_r($param);
//结果
Array
(
    [type] => news
    [is_hot] => 1
    [limit] => 10
    [expire] => 
)

注意:

以下这种找到第一非选项,后面忽略实例

                      php test.php --type news --is_hots 1 --limit=10 --expire=100
                    
                  
                    
                      $longopt = array(
    'type:',
    'is_hot:',
    'limit::',
    'expire'
);
$param = getopt('', $longopt);
print_r($param);
//结果
Array
(
    [type] => news
)
//因为is_hots不是选项值(定义的是is_hot),所以从这里开始之后的参数,都被丢弃

在thinkphp 中, 传参 可以用 这种:

                      php  www/public/index.php  index/Test/run/page/111/page2/222/page3/333
等效于
www.test.com/index/Test/run?page=111&page2=222&page3=333
赞(0)
未经允许不得转载:工具盒子 » Thinkphp中CLI模式下接收参数的几种方式