Google頁面建議您縮小HTML,即刪除所有不必要的空格。 CodeIgniter具有giziping輸出的功能,或者可以通過.htaccess
完成。 但我仍然想從最終的HTML輸出中刪除不必要的空格。使用CodeIgniter的正則表達式最終化HTML輸出
我用這段代碼玩了一下,它似乎工作。 這確實會導致沒有多餘空格的HTML並刪除其他標籤格式。
class Welcome extends CI_Controller
{
function _output()
{
echo preg_replace('!\s+!', ' ', $output);
}
function index(){
...
}
}
的問題是有可能像 <pre>
,<textarea>
等標籤..這可能有空格他們和正則表達式應該刪除它們。 那麼,如何從最終的HTML中刪除多餘空間,而不會影響使用正則表達式的空間或格式化這些特定標記?
由於@Alan摩爾得到了答案,這個工作對我來說
echo preg_replace('#(?ix)(?>[^\S ]\s*|\s{2,})(?=(?:(?:[^<]++|<(?!/?(?:textarea|pre)\b))*+)(?:<(?>textarea|pre)\b|\z))#', ' ', $output);
ridgerunner做了分析這個正則表達式的一個很好的工作。我最終使用他的解決方案。歡呼ridgerunner。
不要使用正則表達式來執行HTML。 – SLaks 2011-03-15 13:23:53
無限upvotes你,SLaks。 – 2011-03-15 13:24:26
好吧,那麼重新格式化最終html輸出的好方法是什麼呢? – Aman 2011-03-15 13:30:54