上記のコード
preg_match('~\b(rain|dry|certain|clear)\b~i',$string);
それは魅力のように機能しますが、強調された文字を含む単語を検索しているときは機能しません。誰か助けてくれませんか
上記のコード
preg_match('~\b(rain|dry|certain|clear)\b~i',$string);
それは魅力のように機能しますが、強調された文字を含む単語を検索しているときは機能しません。誰か助けてくれませんか
技術的には、a と á と à はすべて、インタープリターにとって異なる文字です。それらは異なってエンコードされており、どのエンコーディングが「類似した」文字を表しているかを知る方法はありません (一部の言語では、アクセント付きの文字は根本的に異なる文字です)。したがって、一致させたいすべてのバリアントを含める必要があります。ただし、文字列内の実際のオフセットが必要な場合は、問題が発生する可能性があります。これは、UTF-8 文字列の場合、オフセットは文字ではなくバイトで指定されるためです。
キャラクターのすべてのバージョンを含める方法の例については、この SO の質問を参照してください。
また、間違ったオフセットで問題が発生した場合に備えて、このバグ レポートを参照してください。