11

を置き換えるマルチバイト関数を探していますpreg_match_all()$matchesからの引数のように、一致した文字列の配列を提供するものが必要ですpreg_match()。関数mb_ereg_match()はそれを実行していないようです-一致するものがあったかどうかを示すブール値のみを提供します。

mb_* functions pageを見ると、 の機能を置き換えるものは見当たりませんpreg_match()。何を使う?

編集私はばかです。私は最初にこの質問を投稿し、 の代わりを求めました。preg_matchもちろん、これは ですereg_match。ただし、どちらも最初の結果のみを返します。私が欲しかったのは、preg_match_allすべての一致テキストを返す の代替品でした。とにかく、ハクレが指摘したように、u修飾子は私の場合は forで機能します。preg_match_all

4

2 に答える 2

16

を調べましたmb_eregか?

さらに、修飾子preg_matchを使用して、UTF-8 でエンコードされた文字列を に渡すことができます。これは、必要な種類のマルチバイト サポートである可能性があります。もう 1 つのオプションは、UTF-8 にエンコードしてから結果をエンコードすることです。u

関連する質問への回答も参照してください: PHP preg_functions マルチバイトは安全ですか?

于 2011-10-06T14:33:34.497 に答える
3

PHP: preg_grep マニュアル

$matches = preg_grep('/(needles|to|find)/u', $inputArray);

入力配列のキーを使用してインデックス付けされた配列を返します。

マルチバイト サポートを有効にする /u 修飾子に注意してください。

それが他の人に役立つことを願っています。

于 2014-02-14T15:36:58.127 に答える