2013-08-21 57 views
0

下面的代碼,我如何從緩存中刪除多個空格:刪除換行符,但保持的javascript格式

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?

+3

爲什麼你需要刪除空白? – Blender

+0

從JavaScript代碼中刪除空格不應該打破它,實際上你的代碼檢查出有效。 – Technoh

+0

@Blender即時通訊使用PageSpeed,其中一個建議是「壓縮HTML代碼..bla ...」,此擴展還顯示優化代碼,刪除空白/空間...所以我只是試圖優化我的html源代碼。 – rusly

回答

2

使用負向後看:

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