class.upload错误preg_match()

时间:2015-04-27 16:59:36

标签: php regex preg-match

我使用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 .= '-&nbsp;MIME validated as ' . $this->file_src_mime . '<br />';
} else {
    $this->file_src_mime = null;
}

1 个答案:

答案 0 :(得分:1)

你必须逃离破折号:

/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i

或将其放在角色类的末尾或开头

/^([-\.\w]+)\/([-\.\w]+)(.*)$/i

并且点不需要转义,也不需要区分大小写:

/^([_.\w]+)\/([-.\w]+)(.*)$/