2016-11-15 6 views
1

あなたが任意の文字を削除したパターンが、ASCII文字、数字、_といくつかの特殊文字を定義し...preg_replaceがウムラウトを削除するのはなぜですか?

Code: 
    $zoekwoord = $this->input->get('q', TRUE); 
    $zoekwoord = preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]u/s', '', $zoekwoord); 

Any idea how to keep special chars? (like ö) 
+0

試してみてください '/ [^ \ w%[\]。()%& - ] +/u'' –

+0

ありがとう!それは働いた:D –

+0

うまくいきました、私は以下の答えと説明を追加しました。 –

答えて

1

を私は検索フォームのためにpreg_replaceを作成しようとしていますが、それはあまりにもウムラウトを交換し続けます。

[A-Za-z0-9_]\wに置き換えて、/u修飾子を使用してUnicode対応にする必要があります。

のみを使用]は、この文字クラス内にエスケープする必要があります

'/[^\w %[\].()%&-]+/u' 

注意。 /s修飾子は冗長で、パターンの末尾にuを追加するという誤植をしたと思います。

関連する問題