警告:preg_match错误(class.upload.php)

时间:2014-11-23 18:03:13

标签: php preg-match

Verot上传类(class.upload.php v3.2)在上传和mime检查时发出错误。

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;
}

发生错误:

  

警告:preg_match()[function.preg-match]:编译失败:第2616行的class.upload.php中偏移量为7的字符类中的无效范围

感谢您的建议。

2 个答案:

答案 0 :(得分:2)

[\.-\w]是非法的,因为\w是一个字符类,而不是一个字符。如上所述,您的正则表达式正在查找.\w范围内的字符,这没有任何意义。

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

我认为你可能想要.-或单词字符(任何与\w匹配的内容),在这种情况下你应该使用{{1 }}

答案 1 :(得分:2)

这已在最新版本中修复,您现在可以在Github上找到它: https://github.com/verot/class.upload.php (这里班上的创造者)