grip/trimfilter

PHP的HTML空白字符过滤器

1.0.0 2024-03-08 12:34 UTC

This package is auto-updated.

Last update: 2024-09-08 14:20:58 UTC


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解析器。