|
|
|
|
|
|
| |
OK. SO this is a simple program... more or les a set of few functions in the form of a class. This is meant gzip compression of the Output so that things are made smaller and faster. This is followed by an example at the bottom. Hope this helps you. One more point, this class is meant usually for large sites!, It wont make much diffrence for smaller ones.
IMPORTANT: READ THE COMMENTS CAREFULLY.
PHP4 HTTP Compression
Class Gzip
Author.......: leapinglangoor [ leapinglangoor@yahoo.co.in ]
Version......: 1.20
Filename.....: gzdoc.php
Updated......: 18/10/2000
Requirments..: PHP4 >= 4.0.1
PHP was configured with --with-zlib[=DIR]
Notes........: Dynamic Content Acceleration compresses
the data transmission data on the fly
code by sun jin hu (catoc) <catoc@163.net>
Most newer browsers since 1998/1999 have
been equipped to support the HTTP 1.1
standard known as "content-encoding."
Essentially the browser indicates to the
server that it can accept "content encoding"
and if the server is capable it will then
compress the data and transmit it. The
browser decompresses it and then renders
the page. This version does not require
GLOBALS to be ON. In case you encounter any
errors, please notify me.
func Gzip
Constructor
Initialise the Gzip output.
compress.php:
|
<?php
class Gzip
{
function Gzip()
{
ob_start();
ob_implicit_flush( 0 );
}
/*
** func CheckCanGzip
**
** Used inside the class( in GzDocOut )
** Checks if Gzip is possible
*/
function CheckCanGzip()
{
if( headers_sent() || connection_timeout() || connection_aborted() )
{
return 0;
}
if( strpos( $HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'x-gzip' ) !== false ) return "x-gzip";
if( strpos( $HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip' ) !== false ) return "gzip";
return 0;
}
/*
** func GzDocOut
**
** Main function. Outputs the Gzip compilant contents.
**
** @Param $level = compression level 0-9, 0=none, 9=max
*/
function GzDocOut( $level = 3, $debug = 0)
{
$ENCODING = CheckCanGzip();
if ( $ENCODING )
{
print "\n<!-- Use compress $ENCODING -->\n";
$Contents = ob_get_contents();
ob_end_clean();
if ( $debug )
{
$s = "<p>Not compress length: ".strlen( $Contents );
$s .= "<br>Compressed length: ".strlen( gzcompress( $Contents,$level ) );
$Contents .= $s;
}
header( "Content-Encoding: $ENCODING" );
print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$Size = strlen( $Contents );
$Crc = crc32( $Contents );
$Contents = gzcompress( $Contents,$level );
$Contents = substr( $Contents, 0, strlen( $Contents ) - 4 );
print( $Contents );
print( pack( 'V', $Crc ) );
print( pack( 'V', $Size ) );
exit;
}
else
{
ob_end_flush();
exit;
} // IF( $ENCODING );
} //function GzDocOut
} // Class Gzip
?> | |
As always, here is my example... Read carefully the comments.
Example.php
| <?php
// Initialise the class and constructor.
include('compress.php');
$gz = new Gzip();
/*
The page
Anything you want to put in here.
Including HTML stuff
*/
// Set the level of compression.
// 0 - No compression;
// 9 - Max compresson;
$level = 3;
// Set debug mode
// 1 - True; 0 - False
$debug = 0;
$gz->gzdocout( $level, $debug );
?> | | |
|
| Reduce PHP/HTML File Sizes Categories : PHP, Compression, HTML and PHP, Zlib | | | 3 lines of Code to extract Tar, Zip, Gzip etc.. Categories : PHP, Filesystem, PHP Classes, Compression | | | PHP Zip Utility Categories : PHP, PHP Classes, Compression | | | Remote Archive (Zip, Tar, Gzip) downloader with FTP and local extration support Categories : PHP, FTP, Filesystem, PHP Classes, Compression | | | An efficient iterative and buffered text file reader Categories : PHP, Classes and Objects, Filesystem, PHP Classes, Log Files | | | MySQL database class Categories : PHP, MySQL, Databases, PHP Classes | | | PHP MIME Decoder. This class decodes Mime Encoded email message.
Attachments are stored in a director. Works with Multipart/alternative,
multipart/mixed etc.
see http://p3mail.com for example. Categories : PHP, PHP Classes, Email | | | very simple ftp class Categories : PHP, PHP Classes, FTP | | | PHP Paypal IPN Integration Class v1.0.0 Categories : PHP, PHP Classes, Payment Gateways | | | FormChecker Package - validate any data via classes and patterns.
Categories : PHP, Form Processing, PHP Classes, Regexps | | | Generate FDF files without the pdftk library or php extension. Categories : PHP, PHP Classes, PDF | | | Php Input Output Library - access the parallel and serial(rs232) port directly. Categories : PHP, Hardware, PHP Classes | | | Tweak Array, insert/add elements to any position of your arrays - delete elements from your arrays - move elements within your arrays - replace elements from your arrays ... the array, 'dynamically' grows or shrinks to whatever we tweak it. Categories : PHP Classes, Arrays, PHP | | | PHP Based Apache + Mysql Error Log Parser Categories : PHP, PHP Classes, Apache, MySQL, Log Files | | | PHP5 URL Object Categories : PHP, PHP Classes, URLs, Strings | |
|
|