$replacements=array("[ensored]", "***");
一个2维数组
$rand_key = (rand()%sizeof($replacements));
rand()是一个任意的整数,sizeof($replacements)数组的维数
%是取余数好象
一个2维数组
$rand_key = (rand()%sizeof($replacements));
rand()是一个任意的整数,sizeof($replacements)数组的维数
%是取余数好象
$str中包括$badwords[$i]的用$replacements[$rand_key]替换,不区分大小写
array数组"[ensored]"和"***"不是数组的元素吧"[ensored]"为什么要加[]啊
定义一个一维数组,$replacements它有两个元素,"[ensored]"和 "***",下标分别是0和1$rand_key = (rand()%sizeof($replacements));
随机键质,取质范围0到数组$replacements的长度
$str=eregi_replace($badwords[$i], $replacements[$rand_key], $str);
在 str 中扫描与 全局数组中 $badwords[$i] 匹配的部分,并将其替换为数组$replacements中下标为前一句
生成的随机键的质也就是"[ensored]"或 "***"。
这段代码总的来的功能就是 吧给定的字符串$str中的在全局数组$badwords中有包含的部份随机的替换为数组$replacements中的某一个元素的质并反回
创建包含两个元素数组$rand_key = (rand()%sizeof($replacements));
rand():生成随机数;sizeof计算数组的元素数;%:求rand()除sizeof($replacements))所得的余数$str=eregi_replace($badwords[$i], $replacements[$rand_key], $str);
用$replacements[$rand_key]替换$str中的$badwords[$i]就这末简单,楼主多看看php手册。
{
global $badwords; //被屏蔽的词汇数组
$replacements=array("[ensored]", "***"); //预定义屏蔽掩码for($i=0;$i < sizeof($badwords);$i++) //轮询
{ srand((double)microtime()*1000000);
$rand_key = (rand()%sizeof($replacements)); //获取一个随机屏蔽掩码下标
$str=eregi_replace($badwords[$i], $replacements[$rand_key], $str); //用得到的掩码之一进行替换
}
return $str;
} global $badwords; 个人认为做个函数来取更好。