PHP,使用str_替换过滤特定单词
基本上,我现在有这一行代码:PHP,使用str_替换过滤特定单词,php,Php,基本上,我现在有这一行代码: $uname = str_replace(array('!','"','£','$','%','%','^','&','*','(',')','-','+','=','\\','/','[',']','{','}',';',':','@','#','~','<',',','>','.','?','|',' '), '', $uname); 以上基本上就是我想要的,但是如果他们的方法更简洁,我会这样做,但是欢迎任何帮助。您不需要创建两个或多个st
$uname = str_replace(array('!','"','£','$','%','%','^','&','*','(',')','-','+','=','\\','/','[',']','{','}',';',':','@','#','~','<',',','>','.','?','|',' '), '', $uname);
以上基本上就是我想要的,但是如果他们的方法更简洁,我会这样做,但是欢迎任何帮助。您不需要创建两个或多个
stru replace()
实例,因为只使用一个就可以替换尽可能多的单词
首先,你必须把你想过滤的每个坏单词组成一个“组”,并将它们放入数组中
#示例:
然后,您可能需要首先检查变量是否包含禁用单词列表中的单词。为此,您可以使用PHP的函数:
if(in_array($_POST['keyword'], $bannedWords)){
// keyword not allowed,
}
在此之后,如果要替换该单词,请使用as:
这将删除所有单词并将其替换为零,如果您将“x”
而不是“
作为第二个参数传递,那么它们将全部替换为x
#最后:
通过将数组作为str_replace
的第二个参数传递,可以定义一个唯一的字来替换每个唯一的禁止字:
str_replace(['IE6', 'mccain', 'shit'], ['FireFox', 'roosevelt', 'Cake'], $_POST['keyword'])
现在从$\u POST['keyword']
开始,IE6这个词将被FireFox替换为FireFox,mccain替换为roosevelt等等
$remove = new Array("noob", "racist", "hate", "gay", "etc");
$text = str_replace($remove, "", $post);
echo $text;
这是一种方法。如果您是从post获取字符串,则可以创建一个删除数组,即生成一个文本变量,用post中的“
替换该数组。您可以回显文本,而不是post,那么当回显文本显示时,数组中的任何单词都不会显示 您是否询问是否可以对同一数据运行两次str\u replace
。我希望它能屏蔽特殊字符,并用空格替换,屏蔽不好的单词,并用“坏单词”替换。我理解这一部分,这就是我用它来替换特殊字符的原因,但是我希望用一个单独的部分来屏蔽不好的单词。。对不起,如果我解释得不好。阻止什么?你可以用“
替换”爱“
”,这样就完成了!目前我有它,因此它会更改特殊字符(*$”£$&)对于一个str_替换中的“”,我想添加另一个str_替换以将坏单词改为好单词,我知道如何制作一个str_替换..但不知道如何制作..两个并更改数据。有点像论坛上img的文本,它会更改为:)img。分隔和阻止是什么意思。因为,对于分隔,可以创建单独的str_re放置
,或者你可以创建一个坏单词列表,并将它们保存在一个数组中。我将更新我的答案@LaimThats,这正是我想要的,抱歉我糟糕的解释:P谢谢@php NoOb:D
$replaced = str_replace($bannedWords, "", $_POST['keyword']);
str_replace(['IE6', 'mccain', 'shit'], ['FireFox', 'roosevelt', 'Cake'], $_POST['keyword'])
$remove = new Array("noob", "racist", "hate", "gay", "etc");
$text = str_replace($remove, "", $post);
echo $text;