関数・クラス解説

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 パラメータに含まれる要素には次のようなものがあります。
  • 単一の文字 (値を受け付けない)
  • 文字の後にコロンをひとつ続けたもの (値が必須であるパラメータ)
  • 文字の後にコロンをふたつ続けたもの (値がオプションであるパラメータ)
オプションの値は、文字列の後の最初の引数となります。 値が必須の場合、その前に空白があるかどうかは関係ありません。
注意: オプションの値で、" " (空白) を区切り文字として使用することはできません。
注意: 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" }

参考

  • $argv
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール