2016-11-15 50 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添加到该模式的末尾。

相关问题