mb_eregi错误 - 需要有关如何解决的建议

时间:2013-05-23 09:23:39

标签: php

function encoded_header($raw) 
{
    mb_internal_encoding('UTF-8');
    mb_regex_encoding('UTF-8');

    if ( mb_eregi('[^][<>a-z0-9 _".()/;,:+@|-]', $raw)  ) 
    {
        $chunks = str_split($raw,  20 );
        $encoded = array();

        foreach ( $chunks as $chunk ) 
        {
            array_push($encoded,  base64_encode( $chunk )  );
        }

        return '=?utf-8?B?' . implode('?==?utf-8?B?', $encoded) . '?=';
    } 
    else 
    {
        return $raw;
    }
}

上述函数在调用时给出了:

Error: [2] - mb_eregi() [function.mb-eregi0]: mbregex compile err: premature end of char-class

我们最近更新了我们的PHP到5.3.3版本,我们遇到了这个错误。我们之前的5.0.2版工作正常 我搜索谷歌,但没有提出任何有用的东西。有人对如何修复此错误有任何建议吗?

1 个答案:

答案 0 :(得分:4)

版本5.3中不推荐使用

mb_eregi()

所以用户preg_match();

试试这个:

preg_match('/[^][<>a-z0-9 _".()\;,:+@|-]/i', $row);