$replacements=array("[ensored]", "***");
一个2维数组
$rand_key = (rand()%sizeof($replacements));
rand()是一个任意的整数,sizeof($replacements)数组的维数
%是取余数好象

解决方案 »

  1.   

    $str=eregi_replace($badwords[$i], $replacements[$rand_key], $str);
    $str中包括$badwords[$i]的用$replacements[$rand_key]替换,不区分大小写
      

  2.   

    $replacements=array("[ensored]", "***");这句中的"[ensored]"和"***"分别是代表什么啊
    array数组"[ensored]"和"***"不是数组的元素吧"[ensored]"为什么要加[]啊
      

  3.   

    $replacements=array("[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中的某一个元素的质并反回
      

  4.   

    整个是一个替换不想要的字符串的作用,$badwords里面装了很多的句子,用eregi_replace随机把$badwords里面的替换成[ensored]或者***, 我没有运行代码,只是这样想的, 楼主可以看,$replacements[$rand_key]每次循环的时候到底是什么值。
      

  5.   

    最后的$str就是替换过的句子了!完全是靠自己理解的,没有什么术语,希望能帮到你!
      

  6.   

    $replacements=array("[ensored]",   "***"); 
    创建包含两个元素数组$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手册。
      

  7.   

    我来凑个热闹,其实大家都说了,呵function   FilterBadWords($str) 

    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;   个人认为做个函数来取更好。