我使用class.upload
版本0.32并且它在我的本地主机服务器上正常工作,但它在我的网络服务器上不起作用。
Web服务器日志文件显示以下错误:
PHP Warning: preg_match(): Compilation failed: invalid range in character class at offset 7 in.
网络服务器上的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;
}
答案 0 :(得分:1)
你必须逃离破折号:
/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i
或将其放在角色类的末尾或开头
/^([-\.\w]+)\/([-\.\w]+)(.*)$/i
并且点不需要转义,也不需要区分大小写:
/^([_.\w]+)\/([-.\w]+)(.*)$/