$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))
比如:
$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))
回复zairwolfc(君子兰) :
我是aspsun的站长,有什么事情?
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
--------------------------------------
比如
$censor = "p*,xxx,my";
将拒绝以p打头的全部用户和用户xxx与my
--------------------------------------
如果按照楼主原来的代码,"p*,xxx,my"应该是拒绝以p打头的用户名、包括xxx的用户名和以my结尾的用户名,大小写不敏感
phplover(主动、交流、挑战、责任)说“我觉得上面第二个表达式写得有些错误,应该前后加上括号”是完全正确的,确实应该如此,唠叨大哥对原错误程序说的也比较正确!
现平分这20分,我再开帖,给大家各50分,十分感谢二位!