所以我在我们正在开发的网站上有一个搜索框,它将在包含英语和希腊语产品字符串的数据库中进行搜索。我正在尝试清除各种特殊字符的文本输入,例如:/。 ,'] [%& _等用空格替换它们或完全删除它们。甚至应该删除它们的双重实例,例如^^,&&,[[etc。
我一直在使用preg_replace,但找不到解决方案......
提前致谢。
答案 0 :(得分:3)
我终于想出了这个:
$term = preg_replace("/[^\p{Greek}a-zA-Z0-9\s]+/u", '', $term);
它似乎适用于我需要的东西。它允许希腊字符(甚至带有重音符号),字母数字和空格。用空格替换其他所有东西。感谢快速响应的人。
答案 1 :(得分:2)
使用preg_replace,您可以执行您要查找的内容。在下一个例子中,所有非a-z也不是A-Z,也不是/ _ | + - 字符替换为''(无,空字符串)
preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $str);
在该列表中添加您想要允许的字符,您将拥有自己的功能。
其他方式是str_replace()
,但在这里你必须逐个插入你想要在不同函数调用中删除的所有元素。
我希望它有所帮助
答案 2 :(得分:0)
为什么不制作数组并使用str_replace?
$unallowedChars = array("^", "&", "/", "."); // more for your choosing
$searchContent = str_replace($unallowedChars, "", $searchContent);
用“”替换数组的所有值,换句话说没有。