我正在尝试为我的搜索表单创建一个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 :(得分:1)
您定义了删除除ASCII字母,数字,_
和一些特殊字符之外的任何字符的模式。
您需要将[A-Za-z0-9_]
替换为\w
,并使用/u
修饰符识别其Unicode。
使用
'/[^\w %[\].()%&-]+/u'
请注意,只有]
需要在此字符类中进行转义。 /s
修饰符是多余的,我相信您在模式的末尾添加了u
的拼写错误。