下面是我如何从缓冲区中删除多个空格的代码:
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则可能只是跳过?
答案 0 :(得分:2)
使用负面后卫:
preg_replace('/(?!<!--)\s+/', ' ', $buffer);