PHP preg_functions はマルチバイトで安全ですか? 質問する

PHP preg_functions はマルチバイトで安全ですか? 質問する

PHP にはマルチバイトの 'preg' 関数がありません。つまり、デフォルトの preg_functions はすべて mb セーフであるということですか? PHP ドキュメントには何も記載されていませんでした。

ベストアンサー1

pcre はすぐに使える utf8 をサポートしています。'u' 修飾子のドキュメントを参照してください。

図 (\xC3\xA4 はドイツ語の文字「ä」の UTF8 エンコードです)

  echo preg_replace('~\w~', '@', "a\xC3\xA4b");

これは「@@¤@」をエコーし​​ます。なぜなら「\xC3」と「\xA4」は異なるシンボルとして扱われたからです。

  echo preg_replace('~\w~u', '@', "a\xC3\xA4b");

('u' に注意) は、"\xC3\xA4" が 1 文字として扱われたため、"@@@" を出力します。

おすすめ記事