How to minify HTML code of PHP page ?

03 Jun, 2020
HTML output minification is important to improve website performance by reducing the page load times and reduce the overall page size. Minifying HTML output also reduces the data usage of the user requesting the site.Minification can be done by removing unnecessary details and eliminating excessive whitespaces, newlines, comments, etc. However, minification reduces the readability of the code. Minification can reduce file size upto 70%. PHP is used to transfer files from development to production environment. HTML files can be minified both manually and automatically. Minification can be undone using several tools that add whitespaces in the code. However, any comments removed during minification cannot be restored.
Example: This is the HTML file without minifying the the code.
<html>  <head>  <!-- This is the content that     shows in the browser tab -->      <title>Title Page</title>  </head>  <body>  <!-- This is a comment. -->  <h1>Hello world!</h1></body>  </html>
HTML file after minification
<html><head><title>Title Page</title></head><body><h1>Hello world!</h1></body></html>
Approach 1: Using GZip Compression in Apache:
Steps to enable Gzip Compression in Apache
Open the Apache configuration filevim /etc/httpd/conf/httpd.conf Check the following line in the configuration file.LoadModule deflate_module modules/mod_deflate.soAdd the following lines at the end of configuration file.AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
Restart the Apache Serversudo service httpd restart
Open the Apache configuration filevim /etc/httpd/conf/httpd.conf 
vim /etc/httpd/conf/httpd.conf 
Check the following line in the configuration file.LoadModule deflate_module modules/mod_deflate.so
LoadModule deflate_module modules/mod_deflate.so
Add the following lines at the end of configuration file.AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Restart the Apache Serversudo service httpd restart
sudo service httpd restart
Approach 2: HTML code can be minified with ob_start() function with a callback.
<?phpob_start("minifier");function minifier($code) {    $search = array(                  // Remove whitespaces after tags        '/\>[^\S ]+/s',                  // Remove whitespaces before tags        '/[^\S ]+\</s',                  // Remove multiple whitespace sequences        '/(\s)+/s',                  // Removes comments        '/<!--(.|\s)*?-->/'    );    $replace = array('>', '<', '\\1');    $code = preg_replace($search, $replace, $code);    return $code;}?><!DOCTYPE html><html>   <head>   <!-- title of page -->   <title>Demo for minifier</title>   </head>   <body>   <!-- body of page -->   <h1>Hello World</h1>   </body>   </html>   <?phpob_end_flush();?>
Output:
<!DOCTYPE html><html><head><title>Demo for minifier</title></head><body><h1>Hello World</h1></body></html>
Approach 3: Using HTMLMinifier plugin: HTML Minifier is a server-side source code minifier designed to optimise HTML, CSS and JavaScript output sent out to the client by removing unnecessary whitespaces, comments and newlines. HTMLMinifier offers a variety of optimisation options in the plugin that can be selected as per the user requirement.
Steps to use HTMLMinifier:
Download the HTMLMinifier file from https://www.terresquall.com/download/HTMLMinifier.phpInclude the following code into the php file<?php  // Import the HTMLMinifierrequire_once 'myfolder/HTMLMinifier.php';  // HTML source to be minified$htmlpage = file_get_contents('./mypage.html');  // Minified version of the pageecho HTMLMinifier::process($htmlpage);  ?> Run the php file
Download the HTMLMinifier file from https://www.terresquall.com/download/HTMLMinifier.php
Include the following code into the php file<?php  // Import the HTMLMinifierrequire_once 'myfolder/HTMLMinifier.php';  // HTML source to be minified$htmlpage = file_get_contents('./mypage.html');  // Minified version of the pageecho HTMLMinifier::process($htmlpage);  ?> 
<?php  // Import the HTMLMinifierrequire_once 'myfolder/HTMLMinifier.php';  // HTML source to be minified$htmlpage = file_get_contents('./mypage.html');  // Minified version of the pageecho HTMLMinifier::process($htmlpage);  ?> 
Run the php file
PHP-Misc
Picked
PHP
PHP Programs
Web Technologies
Web technologies Questions
PHP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Difference between HTTP GET and POST Methods
PHP Cookies
Download file from URL using PHP
How to Insert Form Data into Database using PHP ?
How to convert array to string in PHP ?
How to get the file size using PHP ?
String comparison using == vs strcmp() in PHP
How to calculate the difference between two dates in PHP ?
How to create comma separated list from an array in PHP ?
Multidimensional arrays in PHP