|
|
|
|
|
|
| |
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 );
?> | | |
|
| 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 | | | Reduce PHP/HTML File Sizes Categories : PHP, Compression, HTML and PHP, Zlib | | | Filter - A simple class that lets you use multiple functions to create custom filters. Categories : PHP, PHP Classes, Strings | | | PHP5 SQLite Abstraction class Categories : PHP, PHP Classes, SQLite, Databases | | | DbObject - A PHP wrapper for working with various databases Categories : Databases, PHP, PHP Classes | | | The Ajax Tree view class fetches data from a db for the requested parent category id. The data is then stored in an array and converted into JSON (Javascript Object Notation) format. This format is then used by JavaScript for populating tree view. Categories : PHP, PHP Classes, Java Script, AJAX, Databases | | | [PHP5] aDB PDO LIKE Database Abstraction. Switch easily from one db server to another, strong errors management, manage transactions, queries preparation and more. Categories : PHP, PHP Classes, Databases, MS SQL Server, MySQL | | | gzclose -- Close an open gz-file pointer Categories : PHP, PHP Functions, Zlib | | | Customizable Calendar Class Categories : HTML and PHP, Date Time, PHP, PHP Classes, Calendar | | | Simple class that uses GD to draw pie charts. After the class definition there's some sample code to demonstrate how you use the class.
Categories : Graphics, PHP, PHP Classes, GD image library, Charts and Graphs | | | Browser Detecor Class Categories : PHP Classes, PHP, HTML | | | Bs_IniHandler is a class that can read and write ini-style files (and strings) Categories : PHP, Filesystem, PHP Classes | | | PostGreSQL and MySQL 2 in 1 db Manager Categories : PHP, PHP Classes, Databases, PostgreSQL, MySQL | |
|
|