Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,使用str_替换过滤特定单词_Php - Fatal编程技术网

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;