voku / html-min
HTML 压缩和最小化工具
4.5.1
2024-05-25 08:01 UTC
Requires
- php: >=7.0.0
- ext-dom: *
- voku/simple_html_dom: ~4.8.5
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
- dev-master
- 4.5.1
- 4.5.0
- 4.4.10
- 4.4.9
- 4.4.8
- 4.4.7
- 4.4.6
- 4.4.5
- 4.4.4
- 4.4.3
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-renovate/shivammathur-setup-php-2.x
- dev-renovate/actions-checkout-digest
- dev-renovate/major-github-artifact-actions
- dev-renovate/phpunit-phpunit-11.x
- dev-analysis-Zn533a
- dev-analysis-M1vMjO
- dev-dependabot/add-v2-config-file
This package is auto-updated.
Last update: 2024-09-09 17:33:45 UTC
README
🗜️ HtmlMin: PHP 的 HTML 压缩和最小化库
描述
HtmlMin 是一个快速且易于使用的 PHP 库,通过删除多余的空白、注释和其他不需要的字符,以不破坏内容结构的方式最小化给定的 HTML5 源代码。结果页面尺寸减小,加载速度更快。它还将 HTML 准备得更好,以便获得更好的 gzip 结果,通过重新排序(按字母顺序排序)属性和 css 类名。
通过 "composer require" 安装
composer require voku/html-min
快速入门
use voku\helper\HtmlMin; $html = " <html> \r\n\t <body> <ul style=''> <li style='display: inline;' class='foo'> \xc3\xa0 </li> <li class='foo' style='display: inline;'> \xc3\xa1 </li> </ul> </body> \r\n\t </html> "; $htmlMin = new HtmlMin(); echo $htmlMin->minify($html); // '<html><body><ul><li class=foo style="display: inline;"> à <li class=foo style="display: inline;"> á </ul>'
选项
use voku\helper\HtmlMin; $htmlMin = new HtmlMin(); /* * Protected HTML (inline css / inline js / conditional comments) are still protected, * no matter what settings you use. */ $htmlMin->doOptimizeViaHtmlDomParser(); // optimize html via "HtmlDomParser()" $htmlMin->doRemoveComments(); // remove default HTML comments (depends on "doOptimizeViaHtmlDomParser(true)") $htmlMin->doSumUpWhitespace(); // sum-up extra whitespace from the Dom (depends on "doOptimizeViaHtmlDomParser(true)") $htmlMin->doRemoveWhitespaceAroundTags(); // remove whitespace around tags (depends on "doOptimizeViaHtmlDomParser(true)") $htmlMin->doOptimizeAttributes(); // optimize html attributes (depends on "doOptimizeViaHtmlDomParser(true)") $htmlMin->doRemoveHttpPrefixFromAttributes(); // remove optional "http:"-prefix from attributes (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveHttpsPrefixFromAttributes(); // remove optional "https:"-prefix from attributes (depends on "doOptimizeAttributes(true)") $htmlMin->doKeepHttpAndHttpsPrefixOnExternalAttributes(); // keep "http:"- and "https:"-prefix for all external links $htmlMin->doMakeSameDomainsLinksRelative(['example.com']); // make some links relative, by removing the domain from attributes $htmlMin->doRemoveDefaultAttributes(); // remove defaults (depends on "doOptimizeAttributes(true)" | disabled by default) $htmlMin->doRemoveDeprecatedAnchorName(); // remove deprecated anchor-jump (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveDeprecatedScriptCharsetAttribute(); // remove deprecated charset-attribute - the browser will use the charset from the HTTP-Header, anyway (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveDeprecatedTypeFromScriptTag(); // remove deprecated script-mime-types (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveDeprecatedTypeFromStylesheetLink(); // remove "type=text/css" for css links (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveDeprecatedTypeFromStyleAndLinkTag(); // remove "type=text/css" from all links and styles $htmlMin->doRemoveDefaultMediaTypeFromStyleAndLinkTag(); // remove "media="all" from all links and styles $htmlMin->doRemoveDefaultTypeFromButton(); // remove type="submit" from button tags $htmlMin->doRemoveEmptyAttributes(); // remove some empty attributes (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveValueFromEmptyInput(); // remove 'value=""' from empty <input> (depends on "doOptimizeAttributes(true)") $htmlMin->doSortCssClassNames(); // sort css-class-names, for better gzip results (depends on "doOptimizeAttributes(true)") $htmlMin->doSortHtmlAttributes(); // sort html-attributes, for better gzip results (depends on "doOptimizeAttributes(true)") $htmlMin->doRemoveSpacesBetweenTags(); // remove more (aggressive) spaces in the dom (disabled by default) $htmlMin->doRemoveOmittedQuotes(); // remove quotes e.g. class="lall" => class=lall $htmlMin->doRemoveOmittedHtmlTags(); // remove ommitted html tags e.g. <p>lall</p> => <p>lall
PS:您可以使用 "nocompress"-tag 保留 html,例如:"\n foobar \n"
单元测试
- Composer 是运行测试的前提条件。
composer require voku/html-min
- 通过从根目录运行此命令可以执行测试
./vendor/bin/phpunit
支持
欢迎访问 Github | 问题 | PayPal | Patreon 以获取支持和捐赠。
欢迎访问 版本发布 | Twitter | Patreon 以获取状态更新和发布公告。
如需专业支持,请联系 我。