2014-11-23 120 views
1

Verot上传类(class.upload.php v3.2)在上传和MIME检查时会出现错误。警告:preg_match错误(class.upload.php)

if (preg_match("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", $this->file_src_mime)) { 
          $this->file_src_mime = preg_replace("/^([\.-\w]+)\/([\.-\w]+)(.*)$/i", '$1/$2', $this->file_src_mime); 
          $this->log .= '-&nbsp;MIME validated as ' . $this->file_src_mime . '<br />'; 
         } else { 
          $this->file_src_mime = null; 
} 

这发生的错误:

Warning: preg_match() [function.preg-match]: Compilation failed: invalid range in character class at offset 7 in class.upload.php on line 2616

感谢您的建议。

+0

'-'应该进行转义(这里的类的创建者)太 - '\ - '或者放到底块'[\。\ w-]' – 2014-11-23 18:06:16

回答

2

[\.-\w]是非法的,因为\w是一个字符类,而不是一个字符。正如所写的,你的正则表达式正在寻找范围从.\w的字符,这是没有意义的。

我不清楚你在做什么,但你不能这样做。

我想你可能.-,或单词字符(任何由\w匹配),在这种情况下,你应该使用[.\-\w]