多くのプログラミング言語では、主な機能はプログラムへのエントリであり、パラメーターを受信し、プログラムの実行を開始する責任があります。通常、PHPはWeb開発に使用され、エントリポイントは従来の意味では主な機能ではありませんが、コマンドラインモード(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 "2番目のパラメーターはです:" . $args[2] . "\n";
}
// 電話 main 関数,コマンドラインパラメーターを渡します
main($argv);
?>
コマンドを実行します:
php script.php foo bar
出力:
最初のパラメーターはです:foo
2番目のパラメーターはです: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 "1つを渡してください 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に変更する場合の実用的なアプリケーションを示しています。
パラメーターの通過メカニズムを理解すると、より堅牢で柔軟なコマンドラインスクリプトの書き込みに役立ちます。