【发布时间】:2012-10-05 20:20:07
【问题描述】:
如何像谷歌页面速度一样缩小我的 php 页面 html 输出?
例子:
<!DOCTYPE html>
<html>
<head>
<title>Untitled Document</title>
<meta name="description" content="Phasellus rhoncus euismod libero a lacinia. Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
</head>
<body>
<div id="content">
<div id="post-1">
<h1>Phasellus rhoncus euismod libero a lacinia.</h1>
<p>...</p>
</div>
<div id="post-2">
<h1>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h1>
<p>...</p>
</div>
</div>
</body>
</html>
如何使用 php ob_start 这个 html 输出变成这样?
<!DOCTYPE html>
<html>
<head>
<title>Untitled Document</title>
<meta name="description" content="Phasellus rhoncus euismod libero a lacinia. Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
</head>
<body>
<div id="content">
<div id="post-1">
<h1>Phasellus rhoncus euismod libero a lacinia.</h1>
<p>...</p>
</div>
<div id="post-2">
<h1>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h1>
<p>...</p>
</div>
</div>
</body>
</html>
编辑:
我已经尝试过这段代码(基于 James Pegg 的回答)
function sanitize_output($buffer){
$search = array("\n", "\t");
return preg_replace($search, '', $buffer);}
ob_start("sanitize_output");
但它不起作用。该页面现在是空的。
最终工作代码(基于 W. Kristianto 的回答):
function sanitize_output($buffer){
$buffer = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $buffer);
return $buffer;}
【问题讨论】:
-
我觉得你的问题很有趣,但是,在现实生活中你应该首先在其他地方进行优化。您的示例代码从 458 到 451 字节(或 gzip 压缩后从 257 到 251 字节)。您添加另一个处理层只是为了减少几个字节。改为查看更小的图像、更少的请求和缓存。
-
我已经在我的页面上使用了 gzip,但我想知道如何才能完成。前段时间我使用了带有缓存插件(我不记得名字)的wordpress,它能够做到这一点(缩小html代码)。