grip / trimfilter
PHP的HTML空白字符过滤器
1.0.0
2024-03-08 12:34 UTC
Requires (Dev)
README
这个库提供了一个HTML空白字符过滤器,您可以使用它来过滤掉生成的HTML中不必要的空白字符。它不会缓存整个页面,因此不会影响您的首次字节加载时间(TTFB)。需要一些缓存,但您可以自己设置缓存大小。建议缓存大小约为500字节。代码中的<script>
/ <style>
/ <textarea>
/ <pre>
和注释标签的内容永远不会被修剪。
示例
这个过滤器将这个
<!DOCTYPE html> <html lang="nl"> <head> <meta charset="utf-8"> <title>Online koploper worden | Grip Online</title> <meta name="generator" content="e-Grip"> <meta name="description" content="Grip Online helpt uw bedrijf bij de essentiële uitdaging om in uw branche online koploper te worden of te blijven. Van e-commerce tot corporate, van sites tot apps. Kennismaken met Grip?"> <link rel="shortcut icon" href="/assets/grip_online/favicon.png"> <link rel="icon" type="image/png" sizes="192x192" href="/assets/grip_online/images/default/favicon-192x192.png"> <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/assets/grip_online/images/default/apple-touch-icon-180x180.png"> <link rel="home" href="/" title="Homepage"> <link rel="stylesheet" href="/assets/grip_online/css/default/screen.css"> </head> <body> <div id="container"> <div id="header" class="site-header">
转换成这个
<!DOCTYPE html> <html lang="nl"> <head> <meta charset="utf-8"> <title>Online koploper worden | Grip Online</title> <meta name="generator" content="e-Grip"> <meta name="description" content="Grip Online helpt uw bedrijf bij de essentiële uitdaging om in uw branche online koploper te worden of te blijven. Van e-commerce tot corporate, van sites tot apps. Kennismaken met Grip?"> <link rel="shortcut icon" href="/assets/grip_online/favicon.png"> <link rel="icon" type="image/png" sizes="192x192" href="/assets/grip_online/images/default/favicon-192x192.png"> <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="/assets/grip_online/images/default/apple-touch-icon-180x180.png"> <link rel="home" href="/" title="Homepage"> <link rel="stylesheet" href="/assets/grip_online/css/default/screen.css"> </head> <body> <div id="container"> <div id="header" class="site-header">
安装
可以使用Composer安装此库
$ composer require grip/trimfilter
用法
使用Twig模板渲染的示例用法
$trimFilter = new Grip\HtmlWhitespaceFilter(); ob_start(array($trimFilter, 'filter'), 500); $template = $twig->load('index.html'); $template->display(['the' => 'variables', 'go' => 'here']); ob_end_flush(); $trimFilter->endFlush();
注意事项
此库只适用于单字节字符编码和UTF-8。
背景
我们喜欢我们的HTML尽可能干净。当使用模板引擎(如Twig)时,缩进模板标签可能会在输出中引入大量空白字符。这就是我们最初创建此过滤器的初衷。除此之外,HTML中的大多数空白都可以视为“浪费”。过度空白可能确实在使用gzip或brotli压缩时效果不错,但在客户端它将未经压缩发送到HTML解析器。