nguyenhiep/tiny-html-minifier

使用单个类在PHP中压缩HTML

dev-master 2021-06-04 03:13 UTC

This package is auto-updated.

Last update: 2024-09-04 10:17:31 UTC


README

Version 2.2 MIT license Donate

变更日志

简而言之

  • PHP的HTML压缩器。
  • 它非常快。
  • 只需要一个文件。
  • 几乎没有正则表达式。
  • 几乎没有选项。

详情 - 压缩器执行的操作

  • 删除HTML注释。
  • 删除自闭合元素的斜杠。 /> 变为 >
  • 删除 type="text/css"type="text/javascript"stylescript 标签中。
  • 最小化 <head></head> 内的元素。它不会保留任何空白(除了 script 内部)。
  • 最小化 <body></body> 内的元素,但保留标签之间的空格以保留内联数据(可选)。
  • 最小化内联SVG文件(它们是一堆XML标签)。
  • 最小化自定义元素。它们看起来像这样: <my-element>My content</my-element>
  • 跳过 codeprescripttextarea 被压缩。

安装 & 使用

1. 下载

ZIP

下载 tiny-html-minifier.php 或整个ZIP文件。

Composer

您也可以使用Composer安装它。

2. 添加代码

<?php
require 'tiny-html-minifier.php';
echo TinyMinify::html($html);

前后

<!doctype html>
<html lang="en">
<head>

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />

<link href="http://example.com/style.css" rel="stylesheet" />
<link rel="icon" href="http://example.com/favicon.png" />

<title>Tiny Html Minifier</title>

</head>
<body class="body">

<div class="main-wrap">
    <main>
        <textarea>
            Some text
            with newlines
            and some spaces
        </textarea>

        <div class="test">
            <p>This text</p>
            <p>should not</p>
            <p>wrap on multiple lines</p>
        </div>
    </main>
</div>
<script>
    console.log('Script tags are not minified');
    console.log('This is inside a script tag');
</script></body>
</html>

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link href="http://example.com/style.css" rel="stylesheet"><link rel="icon" href="http://example.com/favicon.png"><title>Tiny Html Minifier</title></head> <body class="body"><div class="main-wrap"> <main> <textarea>
            Some text
            with newlines
            and some spaces
        </textarea> <div class="test"> <p>This text</p> <p>should not</p> <p>wrap on multiple lines</p> </div> </main> </div> <script>
    console.log('Script tags are not minified');
    console.log('This is inside a script tag');
</script></body></html>

选项

<?php
require 'tiny-html-minifier.php';
echo TinyMinify::html($html, $options = [
    'collapse_whitespace' => false,
    'disable_comments' => false,
]);

collapse_whitespace

未折叠

保留空格(除了 <head></head> 中的大多数元素)。当使用内联元素时很好。这是默认值。

<ul><li> <a href="#"> My link </a></li><li> <a href="#"> My link </a></li> </ul>

折叠

空格被折叠。元素内的文本仍然保持不变。将此值设置为 true,您将节省一些额外的字节。

<ul><li><a href="#">My link</a></li><li><a href="#">My link</a></li></ul>

要求

  • PHP7+

免责声明

此插件“按原样”提供,不提供任何保证。自行承担使用风险,并在将插件用于生产环境之前自行测试。如果您发现任何问题,请创建新问题

许可证

MIT

不建议在任何推广种族主义、性别歧视、同性恋恐惧症、动物虐待、暴力或其他任何形式仇恨言论的项目中使用此插件。

捐赠

如果您想进行捐赠,可以通过发送任何金额https://www.paypal.me/DevoneraAB

鸣谢