현재 위치: > 최신 기사 목록> PHP 주요 기능에서 파라미터 전송 문제 분석

PHP 주요 기능에서 파라미터 전송 문제 분석

gitbox 2025-05-28

많은 프로그래밍 언어에서 주요 기능은 프로그램에 대한 입력이며 매개 변수를 수신하고 프로그램 실행을 시작합니다. PHP는 일반적으로 웹 개발에 사용되며 진입 점이 전통적인 의미에서 주요 기능은 아니지만 명령 줄 모드 (CLI)에서는 매개 변수 전달을 통해 주요 기능 및 제어 프로그램 동작을 여전히 시뮬레이션 할 수 있습니다.

이 기사는 전달되는 PHP 명령 줄 매개 변수를 결합하여 기본 기능에서 매개 변수를 수신하는 방법을 자세히 설명하고 예제를 통해 다른 매개 변수 전달 방법을 설명합니다.


1. 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
)

2. 기본 함수를 시뮬레이션하여 매개 변수를 수신합니다

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

3. getOpt 함수를 사용하여 옵션으로 매개 변수를 구문 분석합니다.

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 세트

4. 실제 전투 : 간단한 데모를 위해 URL 매개 변수 결합

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 으로 변경할 때 실제 응용 프로그램을 보여줍니다.

  • 매개 변수 전달 메커니즘을 이해하면보다 강력하고 유연한 명령 줄 스크립트를 작성하는 데 도움이됩니다.