RegExp用于排除条带HTML(用于Somme)注释

时间:2015-11-04 作者:bpy

我使用此函数从代码中删除HTML注释以节省加载时间:

// Remove unwanted HTML comments
function remove_html_comments($content = \'\') {
return preg_replace(\'/<!--(.|\\s)*?-->/\', \'\', $content);
}
但我也使用wt3缓存插件witch使用它来解析其注释模式中的代码:

$buffer = preg_replace_callback(\'~<!--\\s*mfunc\\s*\' . W3TC_DYNAMIC_SECURITY . \'(.*)-->(.*)<!--\\s*/mfunc\\s*\' . W3TC_DYNAMIC_SECURITY . \'\\s*-->~Uis\', array(
            &$this,
            \'_parse_dynamic_mfunc\'
        ), $buffer);
我需要实现片段缓存以将代码的某些部分从缓存中排除,但我用于去除代码注释的函数不可能做到这一点,因为它将排除所有注释。。。

Is it possible to exclude all comments inside W3TC comment tags from being removed by the function that i\'m using?

这就是我如何实现我的主题:

在wp配置中。我添加了php

define( \'W3TC_DYNAMIC_SECURITY\', md5( rand( 0, 999999 ) ) ); // random "secret"
在我的模板中:

<!--mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->
<?php echo  rand(0,1000); ?>
<!--/mfunc <?php echo W3TC_DYNAMIC_SECURITY; ?> -->

1 个回复
SO网友:bonger

试着在评论匹配之前进行负面展望,例如

function remove_html_comments($content = \'\') {
    return preg_replace(\'/(?!<!--\\s*\\/?mfunc\\s*\' . W3TC_DYNAMIC_SECURITY . \')<!--(.|\\s)*?-->/\', \'\', $content);
}

相关推荐

如何在WordPress unctions.php中将短代码值传递到Head

我正在尝试为wordpress帖子上的图表创建一个快捷代码。到目前为止,我已经使用了短代码,我可以看到短代码值正在被传递,但我需要知道的是如何将这些值传递到Google图表,以便正确工作。以下是我目前掌握的代码:function chart_shortcode($atts) { $a = shortcode_atts( array( \'value1\' => \'\', \'value2\' => \'\', \'value