删除换行但保持javascript格式

时间:2013-08-21 13:41:13

标签: php preg-replace

下面是我如何从缓冲区中删除多个空格的代码:

function removeWhitespace($buffer)
{
   return preg_replace('/\s+/', ' ', $buffer);
}

ob_start('removeWhitespace');

//html source code

ob_get_flush();

使用此代码,我的html源代码将变为一行(压缩),但它会破坏javascript代码:

之前

<script type="text/javascript"><!--
$(document).ready(function() {
    $('.colorbox').colorbox({
        overlayClose: true,
        opacity: 0.5,
        rel: "colorbox"
    });
});
//--></script> 

<script type="text/javascript"><!-- $(document).ready(function() { $('.colorbox').colorbox({ overlayClose: true, opacity: 0.5, rel: "colorbox" }); }); //--></script>

然后javascript将不再起作用,那么如果检测到这个<!--如何忽略或者如果检测到javascript则可能只是跳过?

1 个答案:

答案 0 :(得分:2)

使用负面后卫:

preg_replace('/(?!<!--)\s+/', ' ', $buffer);