手早く入力文字列をパースする

# MessageFormatter::parseMessage

# msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — 手早く入力文字列をパースする

### 説明

オブジェクト指向型

public static function MessageFormatter::parseMessage(string `$locale`, string `$pattern`, string `$message`): array|false

手続き型

function msgfmt_parse_message(string `$locale`, string `$pattern`, string `$message`): array|false

明示的にフォーマッタオブジェクトを作成せずに、 手早く入力文字列をパースします。 この関数を使用するのは、 一度きりのフォーマット処理であってパラメータや状態を保持する必要がない場合です。

### パラメータ

`locale`

  ロケールに依存する部分をパースする際に使用するロケール。

`pattern`

  `message` のパースに使うパターン。

`message`

  パースする文字列。`pattern` を満たします。

### 戻り値

取り出した項目を含む配列を返します。 エラーが発生した場合は `false` を返します。

### 例

例1 msgfmt_parse_message() の例

    <?php
    $fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                                "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
    var_export($fmt);

    $fmt = msgfmt_parse_message('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
                                "4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
    var_export($fmt);
    ?>

例2 オブジェクト指向の例

    <?php
    $fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                                "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
    var_export($fmt);

    $fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
                                "4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
    var_export($fmt);
    ?>

上の例の出力は以下となります。

    array (
      0 => 4560,
      1 => 123,
      2 => 37.073,
    )
    array (
      0 => 4560,
      1 => 123,
      2 => 37.073,
    )

### 参考

- msgfmt_create() - 新しいメッセージフォーマッタを作成する
- msgfmt_format_message() - 手早くメッセージをフォーマットする
- msgfmt_parse() - パターンを使用して入力文字列をパースする

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open