1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<?php
/* $Id: ob.lib.php 5208 2003-11-26 22:52:25Z rabus $ */
// vim: expandtab sw=4 ts=4 sts=4:
/**
* Output buffer functions for phpMyAdmin
*
* Copyright 2001 Jeremy Brand <jeremy@nirvani.net>
* http://www.jeremybrand.com/Jeremy/Brand/Jeremy_Brand.html
*
* Check for all the needed functions for output buffering
* Make some wrappers for the top and bottoms of our files.
*/
/**
* This function be used eventually to support more modes. It is needed
* because both header and footer functions must know what each other is
* doing.
*
* @return integer the output buffer mode
*/
function PMA_outBufferModeGet()
{
if (@function_exists('ob_start')) {
$mode = 1;
} else {
$mode = 0;
}
// If a user sets the output_handler in php.ini to ob_gzhandler, then
// any right frame file in phpMyAdmin will not be handled properly by
// the browser. My fix was to check the ini file within the
// PMA_outBufferModeGet() function.
//
// (Patch by Garth Gillespie, modified by Marc Delisle)
if (@ini_get('output_handler') == 'ob_gzhandler') {
$mode = 0;
}
if (@get_cfg_var('output_handler') == 'ob_gzhandler') {
$mode = 0;
}
// End patch
// If output buffering is enabled in php.ini it's not possible to
// add the ob_gzhandler without a warning message from php 4.3.0.
// Being better safe than sorry, check for any existing output handler
// instead of just checking the 'output_buffering' setting.
//
if (@function_exists('ob_get_level')) {
if (ob_get_level() > 0) {
$mode = 0;
}
}
// Zero (0) is no mode or in other words output buffering is OFF.
// Follow 2^0, 2^1, 2^2, 2^3 type values for the modes.
// Usefull if we ever decide to combine modes. Then a bitmask field of
// the sum of all modes will be the natural choice.
header('X-ob_mode: ' . $mode);
return $mode;
} // end of the 'PMA_outBufferModeGet()' function
/**
* This function will need to run at the top of all pages if output
* output buffering is turned on. It also needs to be passed $mode from
* the PMA_outBufferModeGet() function or it will be useless.
*
* @param integer the output buffer mode
*
* @return boolean whether output buffering is enabled or not
*/
function PMA_outBufferPre($mode)
{
switch($mode)
{
case 1:
ob_start('ob_gzhandler');
$retval = TRUE;
break;
case 0:
$retval = FALSE;
break;
// loic1: php3 fix
default:
$retval = FALSE;
break;
} // end switch
return $retval;
} // end of the 'PMA_outBufferPre()' function
/**
* This function will need to run at the bottom of all pages if output
* buffering is turned on. It also needs to be passed $mode from the
* PMA_outBufferModeGet() function or it will be useless.
*
* @param integer the output buffer mode
*
* @return boolean whether data has been send from the buffer or not
*/
function PMA_outBufferPost($mode)
{
switch($mode)
{
case 1:
# This output buffer doesn't need a footer.
$retval = TRUE;
break;
case 0:
$retval = FALSE;
break;
// loic1: php3 fix
default:
$retval = FALSE;
break;
} // end switch
return $retval;
} // end of the 'PMA_outBufferPost()' function
?>
|