上传错误preg_Match()
我使用的是class.upload
0.32版,它在我的本地主机服务器上运行正常,但在我的Web服务器上无法运行。
Web服务器日志文件显示此错误:
PHP Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in.
Web服务器上的PHP版本:5.4.39
本地主机上的PHP版本:5.5.15
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 .= '- MIME validated as ' . $this->file_src_mime . '<br />';
} else {
$this->file_src_mime = null;
}
解决方案
您必须转义破折号:
/^([.-w]+)/([.-w]+)(.*)$/i
或将其放在Character类的结尾或开头
/^([-.w]+)/([-.w]+)(.*)$/i
并且点不需要转义,也不需要区分大小写:
/^([_.w]+)/([-.w]+)(.*)$/
相关文章