Linux 시스템에 익숙한 사용자는 Linux의 많은 명령이 rm -f hello.txt
, ls -al
, netstat -tnl
등과 같은 옵션 및 값 입력을 지원한다는 것을 알아야 합니다. 그러면 PHP를 어떻게 만드나요? cli에서 스크립트 실행 모드에서 실행할 때 옵션 및 값 입력도 지원하나요? 두 가지 방법이 있습니다:
이제 세 가지 옵션의 입력을 지원하기 위해 PHP 스크립트가 필요하다고 가정해 보겠습니다.
-a: 값 입력을 허용하지 않습니다
-b: 값 입력 허용
-c: 값 입력을 허용하며 값은 선택 사항입니다.
위 요구 사항에 따라 PHP 스크립트를 작성할 수 있습니다.
<code><span><span>function</span><span>main</span><span>(<span>$args</span>)</span> {</span> var_dump(<span>$args</span>); } <span>/* * 选项字符后面不带冒号,表示该选项不支持值输入 * 选项字符后面带一个冒号,表示该选项支持值输入 * 选项字符后面带两个冒号,表示该选项支持值输入,且值可选 */</span><span>$args</span> = getopt(<span>'ab:c::'</span>); main(<span>$args</span>);</code>
그런 다음 여기에서 명령을 사용하여 스크립트를 실행합니다. Linux를 예로 들어 스크립트 이름이 test.php라고 가정하면 ./php와 test.php 사이에는 -f 옵션이 필요하지 않습니다. ./php test.php -a -b=valueOfB -c=valueOfC
출력:
옵션 c의 값은 선택 사항이므로 옵션 c가 값을 전달하지 않으면 어떻게 되는지 시도해 보겠습니다.
보시다시피 값이 없는 옵션에 해당하는 배열값은 false
입니다. 여기서 주목할 점은 옵션과 값이 등호 "="를 사용하여 연결되거나, 등호를 생략하면 -b valueOfB
처럼 옵션과 값을 구분하는 데 공백을 사용할 수 없습니다. 그렇지 않으면 값을 얻지 못할 수 있습니다.
getopt()
도 --a
처럼 두 개의 대시로 시작하는 옵션을 지원합니다. 자세한 내용은 getopt()
일부 값만 스크립트에 전달하려면 $argv
변수를 사용하면 됩니다. 이 변수에 대한 자세한 내용은 http://php.net/manual/을 참조하세요. zh/reserved.variables.argv.php
PHP 스크립트:
<code>var_dump(<span>$argv</span>);</code>
명령 실행./php test.php valueOfA valueOfB valueOfC
출력:
저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.
위 내용은 관련 내용을 포함하여 PHP 스크립트가 cli 모드에서 실행될 때 옵션 및 값의 입력을 허용하도록 하는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.