preg_replace('/[a-z_]^/', '', $loaderPrefix);我感觉,它的意思是:
把$loaderPrefix中,所有小写英文字母和下划线,替换成空格。···
如果是我所想的那样的话,我很想知道'/[a-z_]^/'中的这个 ^ 符号是干嘛的(记得是表示以X开头的意思啊,怎么放在这个位置??应该放在前面才对啊···)在线等

解决方案 »

  1.   

    测试了一下 没什么作用
    $loaderPrefix="a2c3v5b6n8m9";
    高手来解答
      

  2.   

    ^只有两种用法,要么^[a-z_]表示以a到z的字符或下划线开头,要么[^a-z_],放在中括号里面用表示非a到z的字符或下划线。他这个按理说不会报正则的语法错误,但是逻辑上是有错误的,这个表达式无法匹配到任何字符串。还有是替换为"空",不是"空格",这一点要区分开。
      

  3.   


    我也是这么觉得的,但是这个代码是从zen cart的includes/application_top.php文件中,第95行附近的代码··· 人家这么专业的系统,应该不会犯这么低级的错误吧···汗了
      

  4.   

    看了svn上的文件:
    https://zencart.svn.sourceforge.net/svnroot/zencart/branches/v1-3-8/trunk/includes/application_top.php该行(误)为:
    $loaderPrefix = preg_replace('/[a-z_]^/', '', $loaderPrefix); 基本可以肯定应该是:
    $loaderPrefix = preg_replace('/[^a-z_]/', '', $loaderPrefix); 该行应为过滤$loaderPrefix中的非小写字符与下划线 (你可以尝试一下创建一个bug实例)
    恭喜你发现了一个bug:
    你可以report到
    http://sourceforge.net/tracker/?group_id=83781&atid=570650或者更好地是直接提交一个补丁到:
    http://sourceforge.net/tracker/?group_id=83781&atid=570652你也算为开源作了实际贡献了:)
      

  5.   

    测试了一下 preg_replace('/[a-z_]^/', '', $loaderPrefix); 确实没什么作用 
    6楼的学习了