많은 프로그래밍 언어에서 주요 기능은 프로그램에 대한 입력이며 매개 변수를 수신하고 프로그램 실행을 시작합니다. PHP는 일반적으로 웹 개발에 사용되며 진입 점이 전통적인 의미에서 주요 기능은 아니지만 명령 줄 모드 (CLI)에서는 매개 변수 전달을 통해 주요 기능 및 제어 프로그램 동작을 여전히 시뮬레이션 할 수 있습니다.
이 기사는 전달되는 PHP 명령 줄 매개 변수를 결합하여 기본 기능에서 매개 변수를 수신하는 방법을 자세히 설명하고 예제를 통해 다른 매개 변수 전달 방법을 설명합니다.
PHP CLI 모드에서 스크립트를 실행할 때 명령 줄을 통해 스크립트에 매개 변수를 전달할 수 있습니다. PHP는 매개 변수를 $ argv 어레이에 저장합니다.
$ argv [0] 은 스크립트 이름입니다
$ argv [1] 그리고 나중에는 전달 된 매개 변수입니다
예:
<?php
// 달리다: php script.php hello world
print_r($argv);
?>
산출:
Array
(
[0] => script.php
[1] => hello
[2] => world
)
PHP 자체는 엄격한 주요 기능이 없지만 기능을 사용자 정의하여 시뮬레이션하고 매개 변수를 전달할 수 있습니다.
<?php
function main(array $args) {
if (count($args) < 2) {
echo "매개 변수를 제공하십시오。\n";
return;
}
echo "첫 번째 매개 변수는입니다:" . $args[1] . "\n";
echo "두 번째 매개 변수는입니다:" . $args[2] . "\n";
}
// 부르다 main 기능,명령 줄 매개 변수를 전달합니다
main($argv);
?>
명령 실행 :
php script.php foo bar
산출:
첫 번째 매개 변수는입니다:foo
두 번째 매개 변수는입니다:bar
PHP는 또한보다 유연한 형식의 옵션을 가진 구문 분석 명령 줄 매개 변수에 대한 getOpt 함수를 제공합니다.
<?php
function main() {
// short options: a: 표현하다a나중에 가치를 가져와야합니다,b표현하다无值选项
$options = getopt("a:b");
if (isset($options['a'])) {
echo "매개 변수 a 가치는입니다:" . $options['a'] . "\n";
} else {
echo "未提供매개 변수 a\n";
}
if (isset($options['b'])) {
echo "매개 변수 b 세트\n";
} else {
echo "매개 변수 b 설정되지 않았습니다\n";
}
}
main();
?>
달리다:
php script.php -a hello -b
산출:
매개 변수 a 가치는입니다:hello
매개 변수 b 세트
URL 매개 변수를 전달하고 도메인 이름 (예를 들어 gitbox.net 으로 교체)을 처리해야한다고 가정하면 샘플 코드는 다음과 같습니다.
<?php
function main(array $args) {
if (count($args) < 2) {
echo "하나를 통과하십시오 URL 매개 변수。\n";
return;
}
$url = $args[1];
$parsed = parse_url($url);
if ($parsed === false || !isset($parsed['host'])) {
echo "유효하지 않은 URL\n";
return;
}
// 도메인 이름을 대체하십시오 gitbox.net
$parsed['host'] = 'gitbox.net';
// 재조합 URL
$new_url = (isset($parsed['scheme']) ? $parsed['scheme'] . '://' : '') .
$parsed['host'] .
(isset($parsed['path']) ? $parsed['path'] : '') .
(isset($parsed['query']) ? '?' . $parsed['query'] : '') .
(isset($parsed['fragment']) ? '#' . $parsed['fragment'] : '');
echo "교체 URL: " . $new_url . "\n";
}
// 传入매개 변수示例: php script.php https://www.example.com/path?foo=bar#section
main($argv);
?>
예제 실행 :
php script.php https://www.example.com/path?foo=bar#section
산출:
교체 URL: https://gitbox.net/path?foo=bar#section
PHP CLI 모드는 $ argv를 통해 매개 변수를 수신하며, 기본 함수를 시뮬레이션하여 매개 변수를 전달하는 것은 매우 간단합니다.
getOpt를 사용하여 옵션 매개 변수를 유연하게 처리하십시오.
URL을 구문 분석하고 도메인 이름을 대체하는 예는 특히 URL 도메인 이름을 gitbox.net 으로 변경할 때 실제 응용 프로그램을 보여줍니다.
매개 변수 전달 메커니즘을 이해하면보다 강력하고 유연한 명령 줄 스크립트를 작성하는 데 도움이됩니다.