PHP:输出一行不带preg_replace的HTML文档

Posted

技术标签:

【中文标题】PHP:输出一行不带preg_replace的HTML文档【英文标题】:PHP: output one line HTML-document without preg_replace 【发布时间】:2013-08-21 12:16:48 【问题描述】:

我需要将 html 文档输出为单行字符串,以节省服务器和客户端之间的网络流量。 一种流行的方法是使用preg_replace,它的缺点是速度慢:

$html = preg_replace('~>\s+<~', '><', $html);

另一种方法是在前端打开 GZip,这是更好的解决方案。但是,如果我将使用以下方法:

<!DOCTYPE html><?php
?><html><?php
?><head><?php
  ?><title><?php echo $page_title; ?></title><?php
?></head><?php
?><body><?php
  ?><div><?php
    ?><h1><?php echo $page_title; ?></h1><?php
  ?></div><?php
?></body><?php
?></html>

已编译脚本的字节码存储在 APC 中。除了可读性较差之外,这种方法还有哪些缺点?

【问题讨论】:

【参考方案1】:

Gzip 很简单,没有理由不使用它。

您可以查看通过修剪 HTML 中的空白可以获得多少收益,总的来说,我认为这不值得,因为您处于 Google、Twitter 或 Facebook 的规模。可读性成本和/或 CPU 开销不值得。

我不会担心编译后的脚本大小,如果您真的遇到问题,只需为其提供更多 RAM。

【讨论】:

以上是关于PHP:输出一行不带preg_replace的HTML文档的主要内容,如果未能解决你的问题,请参考以下文章

PHP正则

php输出不带html标签

PHP7 preg_replace出错及解决办法

preg_replace 这个:123.. - 可能是一个简单的 PHP / preg_replace / RegEx 问题,但老实说我很难过

PHP 在 preg_replace 上崩溃

php preg_replace遇到替换本身有括号的内容怎么办