文字列を解析しようとしていますが、文字または数字ではないもので分割します
$parse_query_arguments = preg_split("/[^a-z0-9]+/i", 'København');
そしてmysqlクエリを構築します。preg_split をスキップして文字列を直接入力しようとしても、「K」と「benhavn」という 2 つの異なる文字列に分割されます。
これらの問題にどのように対処できますか?
文字列を解析しようとしていますが、文字または数字ではないもので分割します
$parse_query_arguments = preg_split("/[^a-z0-9]+/i", 'København');
そしてmysqlクエリを構築します。preg_split をスキップして文字列を直接入力しようとしても、「K」と「benhavn」という 2 つの異なる文字列に分割されます。
これらの問題にどのように対処できますか?
そのようなリテラル文字を使用している場合、a-z
アクセント付きの文字とは一致しません。より一般的なマッチングを行うために、利用可能なさまざまな文字クラスを使用したい場合があります。
/[[:alpha:][:digit]]/
この[:alpha:]
セットは よりも範囲がはるかに広いですa-z
。文字の照合は文字コードに基づいて行われることを覚えておいてください。a-z
文字どおり、文字列a
とz
インデックスの間の文字を順番に使用します。のような文字ø
は、アルファベット順でこの範囲内にあっても、この範囲外にあります。
コンピュータは ASCII-abetic (UNICODEical?) 順で動作します。