0

Googleページの速度のように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;}
4

4 に答える 4

1
$data = '
<!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>';

echo "<pre>";
echo htmlentities(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $data));
echo "</pre>";
于 2012-10-15T20:22:31.773 に答える
0

、、、、または\r\n。のみを含むすべての行を削除するだけです。\r\n

これは便利です:PHPのテキストから空白行を削除するにはどうすればよいですか?

于 2012-10-15T19:38:17.300 に答える
0

次のように、すべての新しい行とタブを削除できます。

<?php
// Start Output Bugger
ob_start();

// Start HTML Output
?>
<!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

// Save Output bugger as a variable
$html = ob_get_clean();

//Array of characters to replace
$strings = Array("\n", "\t");

//Strip out new lines and tabs
$html = str_replace($strings, '', $html);

//Echo minified content
echo $html;
?>

それが役立つことを願っています!

于 2012-10-15T19:44:22.687 に答える
0

いくつかの jsライブラリを使用してみてください。

于 2012-10-15T19:50:32.247 に答える