の違いを理解することはできません:はコメントアウト文字列元のコード(Drupalのコアモジュール)前回の現像液中で2つのするpreg_matchパターン
if (preg_match('/[^\x{80}-\x{F7} [email protected]_.\'-]/i', $name)) {
、代わりに、追加:
if (preg_match('/[^\x{80}-\x{F7} [email protected]_.\'-]/iu', $name)) {
ことができますこれら2つの違いを理解するのに役立ちますか?修飾子は何をしますか?私が見つけたPHPのドキュメントには:
U(PCRE8)
この修飾子は、Perlとの互換性がありませんPCREの追加機能をオンにします。パターン文字列はUTF-8として扱われます。この修飾子はUnixではPHP 4.1.0以降、win32ではPHP 4.2.3から利用可能です。パターンのUTF-8妥当性は、PHP 4.3.5からチェックされます。
これまでの開発者は、特殊文字などの解釈に問題があったと思います。私は少し困惑しています、このアドバイスをしてください。
この完全な説明をいただきありがとうございます! – Timus83