$txt = strtoupper(str_replace('/[\W_]/','',$txt)); 看到又段加密的代码里有这一句
请问其中的str_replace('/[\W_]/','',$txt) 有什么用呢
如果不加效果一样吗

解决方案 »

  1.   

    str_replace('/[\W_]/','',$txt) 是正则表达式的替代,表示去除所有字母、数字或汉字之外的字符
      

  2.   

    \w  (小写)匹配的是字母、数字、下划线和汉字的单个字符
    \W  (大写)匹配的正好与上面相反,可以理解为非\w的单个字符,显然它不包含有下划线
    替代字符是空字符串,表示所有与正则表达式匹配的内容被去除。
    脚本希望下划线也被去除,所以使用了[\W_],“中括号”的意思可以理解为其内之一的字符
    这样就达到了脚本的目的:去除所有不是字母或数字或汉字的字符