2016-11-15 51 views
1

我想創造我的搜索形式的preg_replace,但它一直代替變音太...爲什麼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

您定義刪除任何字符,但ASCII字母圖案,數字,_和一些特殊字符。

您需要用\w替換[A-Za-z0-9_],並使用/u修飾符使其具有Unicode意識。

使用

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

注意,這個字符類中被轉義僅]需求。 /s修飾符是多餘的,我相信你犯了一個錯字,將u添加到該模式的末尾。

相關問題