|
|
|
|
|
|
| |
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 );
?> | | |
| 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 | | | Reduce PHP/HTML File Sizes Categories : PHP, Compression, HTML and PHP, Zlib | |
| | Render TTF Text to PNG. Text message, font, size, rotation, padding, color, background, and transparency can all be defined via URL. Categories : PHP, PHP Classes, Graphics | | | Example Shopping cart class Categories : Ecommerce, PHP, PHP Classes | | | simple shopping cart for php3 Categories : PHP, PHP Classes, Complete Programs, Ecommerce | | | Online Automatic Class Generator for MySQL Tables Categories : PHP, PHP Classes, Classes and Objects, Databases, MySQL | | | Generate HTML Calendar of a month of year Categories : PHP, Calendar, PHP Classes | | | Specify your connection settings and create a link to a MySQL database. Categories : PHP, PHP Classes, Databases, MySQL, Beginner Guides | | | crop and resize image class using gd library function Categories : PHP, PHP Classes, GD image library, Graphics | | | Excel class in PHP Categories : PHP, PHP Classes, Excel | | | Create and restore backup of MySQL databases Categories : MySQL, Databases, PHP, PHP Classes, Complete Programs | | | file class , uploade file , download file already uploaded on another website Categories : PHP, PHP Classes, Filesystem, Web Services | | | Authorize.net AIM Interface Class v1.0.0 Categories : PHP, PHP Classes, Ecommerce, Payment Gateways | |
|
|