• 技术文章 >类库下载 >PHP类库

    php 命令行方式运行时 几种传入参数的方式

    高洛峰高洛峰2016-10-14 10:20:35原创609
    1.  url方式

    $param = array();
     
    if ($argc > 1) {
        parse_str ( $argv [1], $param );
        foreach ( $param as $k => $v ) {
            echo "define $k=$v\n";
            $param[$k] = $v;
        }
    }
     
    print_r($param);
     
    //运行示例
    php sync_t_search.php "name=sjk&city=bj"

    2、系统内置变量

    //当传入多个或多个参数可选时有很大的局限性
    $argv #0为当前执行的文件名
    $argc #参数个数

    3、系统函数 getopt

    //1、个人总结:如果只传一个参数,:(必选)/::(可选)都可
    //2、如果传多个参数则要区分可选必选,建议尽量用可选参数并且后面的值不要传入空格
    //3、可选参数:标识符存在且有值时,下标才会存在
    //4、必选参数:只要标识符存在,下标就会存在(如果取不到值为false)
    /**
     * 
    php song.php -h"a b" || php song.php -h"a b" 不受空格影响(建议保持一致都不加空格)
    array(1) {
      ["h"]=>
      string(3) "a b"
    }
     
    php song.php -h -a
    array(1) {
      ["h"]=>
      string(2) "-a"
    }
     
     */
    var_dump(getopt('h:a::')); //必选参数,如果参加之间有空格要加引号, 选项后面有空格也不会影响取值,会把他后面的值都当做参数的值
     
    /**
    php song.php -asong
    array(1) {
      ["a"]=>
      string(4) "song"
    }
     */
    var_dump(getopt('a::h:')); //可选参数,参数必须紧跟在选项后面,否则获取不到

    4、系统函数 getopt

    //标准输出
    fwrite(STDOUT, "Enter your name: ");
    echo "\n";
    //标准输入
    $name = trim(fgets(STDIN));
    fwrite(STDOUT, "Hello, $name!");
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php实现网站插件机制的方法 下一篇:php 设置一个函数的最大运行时间
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• php检查远程文件是否存在• php中stdClass的用法分析• 对php一些服务器端特性配置,加强php的安全• 最近写php命令行程序的一些心得
    1/1

    PHP中文网