OK、PHPには、ユーザーが提供しているプログラムオプションに関する情報を返す、getopt()関数が組み込まれています。私が何かが欠けていない限り、それは完全に骨抜きにされています!マニュアルから:PHPのgetopt()を使用した後、どのような引数が残っているかをどのように知ることができますか?
オプションの解析は、最初にオプションが見つからなかった場合に終了し、その後に続くものはすべて破棄されます。
のでgetopt()
は、有効なとの配列を返すだけオプションが解析されました。 を見ても元のコマンドライン全体を見ることができますが、変更されないままですが、ののどこで引数の解析が中止されたかをにどのように伝えますか?残りのコマンドラインを他のもの(ファイル名など)として扱う場合は、これを知ることが不可欠です。
$args = getopt('abc');
:その後、私はこのようなgetopt()
を呼ぶかもしれない
Usage: test [OPTION]... [FILE]...
Options:
-a something
-b something
-c something
:ここ
は例です...私は、次の引数を受け入れるようにスクリプトを設定するとしますそして、私がこのようなスクリプトを実行した場合:
$ ./test.php -a -bccc file1 file2 file3
私は、次の配列が私に戻ってきたことを期待すべきである:
Array
(
[a] =>
[b] =>
[c] => Array
(
[0] =>
[1] =>
[2] =>
)
)
そこで質問はこれです:どのように地球上で私は3解析対象外、非オプションFILE
引数は$argv[ 3 ]
で始めることを知っているはずですか? ??
あなたはConsole_GetOpt(http://stackoverflow.com/questions/1023095/phps-command-line-option-parsing-howto)に見ることができるが、それはPEARが必要です。 – andig
'$ argv [count($ argv) - 1]' – EaterOfCode
@EaterOfCode:できないようにファイルを最後のパラメータとして指定しました。任意の数のファイルを指定することができるので、解析されていない非オプション引数の数が最後にいくつあるかを知る必要があります。 – edam