>  기사  >  백엔드 개발  >  PHP 명령줄 모드에서 실행할 때 매개변수를 전달하는 여러 가지 방법

PHP 명령줄 모드에서 실행할 때 매개변수를 전달하는 여러 가지 방법

高洛峰
高洛峰원래의
2016-11-28 16:32:471043검색

 url 메소드

<strong>$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"</strong>

시스템 내장 변수

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

시스템 함수 getopt

<strong>//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(&#39;h:a::&#39;)); //必选参数,如果参加之间有空格要加引号, 选项后面有空格也不会影响取值,会把他后面的值都当做参数的值
 
/**
php song.php -asong
array(1) {
  ["a"]=>
  string(4) "song"
}
 */
var_dump(getopt(&#39;a::h:&#39;)); //可选参数,参数必须紧跟在选项后面,否则获取不到</strong>

4. 시스템 함수 getopt

<strong>//标准输出
fwrite(STDOUT, "Enter your name: ");
echo "\n";
//标准输入
$name = trim(fgets(STDIN));
fwrite(STDOUT, "Hello, $name!");</strong>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.