関数・クラス解説
getopt
version:PHP 4 >= 4.3.0, PHP 5, PHP 7 (公式)コマンドライン引数のリストからオプションを取得する
公式リファレンス
書式
getopt ( string $options [, array $longopts [, int &$optind ]] ) : array|false
説明
スクリプトに渡されたオプションをパースします。
パラメータ
- options
- この文字列の各文字をオプション文字として使用し、 スクリプトにハイフンひとつ (-) で始まるオプションとして渡された内容とマッチさせます。 たとえば、オプション文字列 "x" は -x というオプションを認識します。 a-z、A-Z および 0-9 のみを認識します。
- longopts
- オプションの配列。 この配列の各要素をオプション文字列として使用し、 スクリプトにハイフンふたつ (--) で始まるオプションとして渡された内容とマッチさせます。 たとえば、longopts の要素 "opt" は --opt というオプションを認識します。
- optind
- optind パラメータが与えられると、 引数のパースを止めた時点のインデックスがこの変数に書き込まれます。
- 単一の文字 (値を受け付けない)
- 文字の後にコロンをひとつ続けたもの (値が必須であるパラメータ)
- 文字の後にコロンをふたつ続けたもの (値がオプションであるパラメータ)
注意: オプションの値で、" " (空白) を区切り文字として使用することはできません。
注意: options と longopts の書式はほぼ同じです。唯一の違いは、 longopts はオプションの配列 (その各要素がオプションとなる) を受け取るけれども options は文字列 (その各文字がオプションとなる) を受け取るということです。
返値
この関数はオプション/引数のペアを連想配列で返します。 失敗した場合に FALSE を返します。
注意: オプション以外のものが見つかった時点でオプションのパースは終了し、 それ以降の内容は破棄されます。
更新履歴
バージョン | 説明 |
---|---|
7.1.0 | optind パラメータが追加されました。 |
サンプル
例1 getopt() の例:基本編
// スクリプト example.php
$options = getopt("f:hp:");
var_dump($options);
shell> php example.php -fvalue -h 上の例の出力は以下となります。
array(2) {
["f"]=>
string(5) "value"
["h"]=>
bool(false)
}
例2 getopt() の例:長いオプション
// スクリプト example.php
$shortopts = "";
$shortopts .= "f:"; // 値が必須
$shortopts .= "v::"; // 値がオプション
$shortopts .= "abc"; // これらのオプションは値を受け取りません
$longopts = array(
"required:", // 値が必須
"optional::", // 値がオプション
"option", // 値なし
"opt", // 値なし
);
$options = getopt($shortopts, $longopts);
var_dump($options);
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option 上の例の出力は以下となります。
array(6) {
["f"]=>
string(11) "value for f"
["v"]=>
bool(false)
["a"]=>
bool(false)
["required"]=>
string(5) "value"
["optional"]=>
string(14) "optional value"
["option"]=>
bool(false)
}
例3 getopt() の例:複数のオプションを一度に渡す
// スクリプト example.php
$options = getopt("abc");
var_dump($options);
shell> php example.php -aaac 上の例の出力は以下となります。
array(2) {
["a"]=>
array(3) {
[0]=>
bool(false)
[1]=>
bool(false)
[2]=>
bool(false)
}
["c"]=>
bool(false)
}
例4 getopt() example: Using optind
<?php// Script example.php$optind = null;$opts = getopt('a:b:', [], $optind);$pos_args = array_slice($argv, $optind);var_dump($pos_args); shell> php example.php -a 1 -b 2 -- test 上の例の出力は以下となります。
array(1) {
[0]=>
string(4) "test"
}
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール