Discuz在hhvm环境下显示不正常,没法使用的解决办法

HipHop VM(hhvm)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。

HHVM安装其实还好,但是在discuz在hhvm环境下显示不正常。


其实出现这个问题只是discuz使 用了在php5.5.0已经弃用了

PREG_REPLACE(http://php.net/manual/en/reference.pcre.pattern.modifiers.php#reference.pcre.pattern.modifiers.eval)。。。

使用回调函数替换就好。

下面张自然不说废话了,直接说方法,打开discuz根目录/source/function/cache下的cache_styles.php替换以下代码


    120行原来是

    $cssdata = preg_replace("/\{([A-Z0-9]+)\}/e", '\$data[strtolower(\'\1\')]', $cssdata);

    替换为

    $cssdata = preg_replace_callback( '/\{([A-Z0-9]+)\}/', function( $v ) use ( $data ) {
    return $data[strtolower($v[1])];
    }, $cssdata );




关键词: hhvm , discuz

上一篇: 如何将Ubuntu Server 12.04 升级到 Ubuntu Server 14.04 LTS
下一篇: 给目前在互联网公司上班朋友的建议

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):