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