$censor应该是容纳那些不允许的账号和不允许包括某些子串的账号
比如:
$censor = "csdn,msdn,*fuck*";
表示账号不能为csdn,msdn,也不能包括fuck子串,大小写不敏感我觉得上面第二个表达式写得有些错误,应该前后加上括号,即:
if(preg_match("/^\s*$|^c:\\con\\con$| |[%,\*\"\s\t\<\>\&]|^游客|^Guest/is", $username) || @preg_match('/^('.str_replace(array('\\*', ',', ' '), array('.*', '|', ''), preg_quote($censor, '/')).')$/i', $username))

解决方案 »

  1.   

    谢谢phplover(主动、交流、挑战、责任),我试试!!
    回复zairwolfc(君子兰) :
    我是aspsun的站长,有什么事情?
      

  2.   

    分析
    preg_match("/^\s*$|^c:\\con\\con$| |[%,\*\"\s\t\<\>\&]|^游客|^Guest/is", $username)
    此式在用户名为空或为非注册用户时返回真preg_match('/^'.str_replace(array('\\*', ',', ' '), array('.*', '|', ''), preg_quote($censor, '/')).'$/i', $username))
    此式当$username包含在$censor中时返回真结论
    $censor是一个被排除的用户列表,凡在其中的都将被拒绝
    $censor的格式是一组用逗号“,”分隔的用户名
    可用“*”做统配符比如
    $censor = "p*,xxx,my";
    将拒绝以p打头的全部用户和用户xxx与my
      

  3.   

    To xuzuning(唠叨):
    --------------------------------------
    比如
    $censor = "p*,xxx,my";
    将拒绝以p打头的全部用户和用户xxx与my
    --------------------------------------
    如果按照楼主原来的代码,"p*,xxx,my"应该是拒绝以p打头的用户名、包括xxx的用户名和以my结尾的用户名,大小写不敏感
      

  4.   

    成功了,实在谢谢两位!
    phplover(主动、交流、挑战、责任)说“我觉得上面第二个表达式写得有些错误,应该前后加上括号”是完全正确的,确实应该如此,唠叨大哥对原错误程序说的也比较正确!
    现平分这20分,我再开帖,给大家各50分,十分感谢二位!