本文整理汇总了PHP中ob_gzhandler函数的典型用法代码示例。如果您正苦于以下问题:PHP ob_gzhandler函数的具体用法?PHP ob_gzhandler怎么用?PHP ob_gzhandler使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ob_gzhandler函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: printContent
/**
* print either html or xml content given oModule object
* @remark addon execution and the trigger execution are included within this method, which might create inflexibility for the fine grained caching
* @param ModuleObject $oModule the module object
* @return void
*/
function printContent(&$oModule)
{
// Check if the gzip encoding supported
if (defined('__OB_GZHANDLER_ENABLE__') && __OB_GZHANDLER_ENABLE__ == 1 && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE && function_exists('ob_gzhandler') && extension_loaded('zlib') && $oModule->gzhandler_enable) {
$this->gz_enabled = TRUE;
}
// Extract contents to display by the request method
if (Context::get('xeVirtualRequestMethod') == 'xml') {
require_once _XE_PATH_ . "classes/display/VirtualXMLDisplayHandler.php";
$handler = new VirtualXMLDisplayHandler();
} else {
if (Context::getRequestMethod() == 'XMLRPC') {
require_once _XE_PATH_ . "classes/display/XMLDisplayHandler.php";
$handler = new XMLDisplayHandler();
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
$this->gz_enabled = FALSE;
}
} else {
if (Context::getRequestMethod() == 'JSON') {
require_once _XE_PATH_ . "classes/display/JSONDisplayHandler.php";
$handler = new JSONDisplayHandler();
} else {
if (Context::getRequestMethod() == 'JS_CALLBACK') {
require_once _XE_PATH_ . "classes/display/JSCallbackDisplayHandler.php";
$handler = new JSCallbackDisplayHandler();
} else {
require_once _XE_PATH_ . "classes/display/HTMLDisplayHandler.php";
$handler = new HTMLDisplayHandler();
}
}
}
}
$output = $handler->toDoc($oModule);
// call a trigger before display
ModuleHandler::triggerCall('display', 'before', $output);
// execute add-on
$called_position = 'before_display_content';
$oAddonController = getController('addon');
$addon_file = $oAddonController->getCacheFilePath(Mobile::isFromMobilePhone() ? "mobile" : "pc");
if (file_exists($addon_file)) {
include $addon_file;
}
if (method_exists($handler, "prepareToPrint")) {
$handler->prepareToPrint($output);
}
// header output
if ($this->gz_enabled) {
header("Content-Encoding: gzip");
}
$httpStatusCode = $oModule->getHttpStatusCode();
if ($httpStatusCode && $httpStatusCode != 200) {
$this->_printHttpStatusCode($httpStatusCode);
} else {
if (Context::getResponseMethod() == 'JSON' || Context::getResponseMethod() == 'JS_CALLBACK') {
$this->_printJSONHeader();
} else {
if (Context::getResponseMethod() != 'HTML') {
$this->_printXMLHeader();
} else {
$this->_printHTMLHeader();
}
}
}
// debugOutput output
$this->content_size = strlen($output);
$output .= $this->_debugOutput();
// results directly output
if ($this->gz_enabled) {
print ob_gzhandler($output, 5);
} else {
print $output;
}
// call a trigger after display
ModuleHandler::triggerCall('display', 'after', $output);
}
开发者ID:Gunmania,项目名称:xe-core,代码行数:81,代码来源:DisplayHandler.class.php
示例2: epb
function epb($buffer, $mode)
{
//@ob_gzhandler($buffer, $mode);
@ob_gzhandler($buffer);
//return $buffer; // uncomment if you're messing with output buffering so errors show. ~pb
return expProcessBuffer($buffer);
}
开发者ID:notzen,项目名称:exponent-cms,代码行数:7,代码来源:selector.php
示例3: gzip_ops
function gzip_ops( &$buffer, $mode = 5 )
{
if ( GZIP === true && function_exists('ob_gzhandler') && substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') )
{
$buffer = ob_gzhandler($buffer, $mode);
}
return $buffer;
}
开发者ID:pf5512,项目名称:phpstudy,代码行数:8,代码来源:init.php
示例4: compress_handler
function compress_handler($p_buffer, $p_mode)
{
if (compress_is_enabled()) {
return ob_gzhandler($p_buffer, $p_mode);
} else {
return $p_buffer;
}
}
开发者ID:amjadtbssm,项目名称:website,代码行数:8,代码来源:compress_api.php
示例5: do_end
static function do_end($buffer, $mode)
{
// write contents to file
chdir(dirname($_SERVER['SCRIPT_FILENAME']));
file_put_contents(Cache::cache_file(), $buffer);
// use gz_handler to output if possible
if (headers_sent() || true) {
return false;
} else {
return ob_gzhandler($buffer, $mode);
}
}
开发者ID:rmoorman,项目名称:twanvl-nl,代码行数:12,代码来源:Cache.php
示例6: compressionOutputHandler
/**
* Corrects HTTP "Content-length" header if it was sent by TYPO3 and compression
* is enabled.
*
* @param string $outputBuffer Output buffer to compress
* @param int $mode One of PHP_OUTPUT_HANDLER_xxx contants
* @return string Compressed string
* @see ob_start()
* @see ob_gzhandler()
*/
function compressionOutputHandler($outputBuffer, $mode)
{
// Compress the content
$outputBuffer = ob_gzhandler($outputBuffer, $mode);
if ($outputBuffer !== false) {
// Save compressed size
$this->contentLength += strlen($outputBuffer);
// Check if this was the last content chunk
if (0 != ($mode & PHP_OUTPUT_HANDLER_END)) {
// Check if we have content-length header
foreach (headers_list() as $header) {
if (0 == strncasecmp('Content-length:', $header, 15)) {
header('Content-length: ' . $this->contentLength);
break;
}
}
}
}
return $outputBuffer;
}
开发者ID:NaveedWebdeveloper,项目名称:Test,代码行数:30,代码来源:class.tslib_fecompression.php
示例7: printContent
/**
* @brief 모듈객체를 받아서 content 출력
**/
function printContent(&$oModule)
{
// gzip encoding 지원 여부 체크
if (defined('__OB_GZHANDLER_ENABLE__') && __OB_GZHANDLER_ENABLE__ == 1 && strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false && function_exists('ob_gzhandler') && extension_loaded('zlib')) {
$this->gz_enabled = true;
}
// request method에 따른 컨텐츠 결과물 추출
if (Context::get('xeVirtualRequestMethod') == 'xml') {
$output = $this->_toVirtualXmlDoc($oModule);
} else {
if (Context::getRequestMethod() == 'XMLRPC') {
$output = $this->_toXmlDoc($oModule);
} else {
if (Context::getRequestMethod() == 'JSON') {
$output = $this->_toJSON($oModule);
} else {
$output = $this->_toHTMLDoc($oModule);
}
}
}
// HTML 출력 요청일 경우 레이아웃 컴파일과 더블어 완성된 코드를 제공
if (Context::getResponseMethod() == "HTML") {
// 관리자 모드일 경우 #xeAdmin id를 가지는 div 추가
if (Context::get('module') != 'admin' && strpos(Context::get('act'), 'Admin') > 0) {
$output = '<div id="xeAdmin">' . $output . '</div>';
}
// 내용을 content라는 변수로 설정 (layout에서 {$output}에서 대체됨)
Context::set('content', $output);
// 레이아웃을 컴파일
$oTemplate =& TemplateHandler::getInstance();
// layout이라는 변수가 none으로 설정되면 기본 레이아웃으로 변경
if (Context::get('layout') != 'none') {
if (__DEBUG__ == 3) {
$start = getMicroTime();
}
$layout_path = $oModule->getLayoutPath();
$layout_file = $oModule->getLayoutFile();
$edited_layout_file = $oModule->getEditedLayoutFile();
// 현재 요청된 레이아웃 정보를 구함
$oLayoutModel =& getModel('layout');
$current_module_info = Context::get('current_module_info');
$layout_srl = $current_module_info->layout_srl;
// 레이아웃과 연결되어 있으면 레이아웃 컴파일
if ($layout_srl > 0) {
$layout_info = Context::get('layout_info');
// faceoff 레이아웃일 경우 별도 처리
if ($layout_info && $layout_info->type == 'faceoff') {
$oLayoutModel->doActivateFaceOff($layout_info);
Context::set('layout_info', $layout_info);
}
// 관리자 레이아웃 수정화면에서 변경된 CSS가 있는지 조사
$edited_layout_css = $oLayoutModel->getUserLayoutCss($layout_srl);
if (file_exists($edited_layout_css)) {
Context::addCSSFile($edited_layout_css, true, 'all', '', 100);
}
}
if (!$layout_path) {
$layout_path = "./common/tpl";
}
if (!$layout_file) {
$layout_file = "default_layout";
}
$output = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
if (__DEBUG__ == 3) {
$GLOBALS['__layout_compile_elapsed__'] = getMicroTime() - $start;
}
}
}
// 출력하기 전에 trigger 호출 (before)
ModuleHandler::triggerCall('display', 'before', $output);
// 애드온 실행
$called_position = 'before_display_content';
$oAddonController =& getController('addon');
$addon_file = $oAddonController->getCacheFilePath();
if (file_exists($addon_file)) {
@(include $addon_file);
}
// HTML 출력일 경우 최종적으로 common layout을 씌워서 출력
if (Context::getResponseMethod() == "HTML") {
if (__DEBUG__ == 3) {
$start = getMicroTime();
}
// body 내의 <style ..></style>를 header로 이동
$output = preg_replace_callback('!<style(.*?)<\\/style>!is', array($this, 'moveStyleToHeader'), $output);
// 메타 파일 변경 (캐싱기능등으로 인해 위젯등에서 <!--Meta:경로--> 태그를 content에 넣는 경우가 있음
$output = preg_replace_callback('/<!--Meta:([a-z0-9\\_\\/\\.\\@]+)-->/is', array($this, 'transMeta'), $output);
// rewrite module 사용시 생기는 상대경로에 대한 처리를 함
if (Context::isAllowRewrite()) {
$url = parse_url(Context::getRequestUri());
$real_path = $url['path'];
$pattern = '/src=("|\'){1}(\\.\\/)?(files\\/attach|files\\/cache|files\\/faceOff|files\\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\\/([^"\']+)\\.(jpg|jpeg|png|gif)("|\'){1}/s';
$output = preg_replace($pattern, 'src=$1' . $real_path . '$3/$4.$5$6', $output);
if (Context::get('vid')) {
$pattern = '/\\/' . Context::get('vid') . '\\?([^=]+)=/is';
$output = preg_replace($pattern, '/?$1=', $output);
}
}
//.........这里部分代码省略.........
开发者ID:hottaro,项目名称:xpressengine,代码行数:101,代码来源:DisplayHandler.class.php
示例8: SendImageFromCache
function SendImageFromCache($src, $cached = true)
{
// set header
header('Content-type: image/jpg');
header('Cache-Control: public');
// set cache signal
header('Sd-signature: ' . ($cached ? 'Cached Image' : 'Created Image'));
// gzhandler
die(ob_gzhandler(file_get_contents($src), 9));
}
开发者ID:smartdealer,项目名称:sdpack,代码行数:10,代码来源:functions.php
示例9: _httpConditionalCallBack
function _httpConditionalCallBack($buffer, $mode = 5)
{
//Private function automatically called at the end of the script when compression is enabled
//rfc2616-sec14.html#sec14.11
//You can adjust the level of compression with zlib.output_compression_level in php.ini
if (extension_loaded('zlib') && !ini_get('zlib.output_compression')) {
$buffer2 = ob_gzhandler($buffer, $mode);
//Will check HTTP_ACCEPT_ENCODING and put correct headers
if (strlen($buffer2) > 1) {
//When ob_gzhandler succeeded
$buffer = $buffer2;
}
}
header('Content-Length: ' . strlen($buffer));
//Allows persistant connections //rfc2616-sec14.html#sec14.13
return $buffer;
}
开发者ID:BackupTheBerlios,项目名称:plogfr-svn,代码行数:17,代码来源:httpcache.class.php
示例10: render
/**
* Returns the Asset Types content.
* It will try and use Gzip to compress the content and save bandwidth
*
* @return string
*/
public function render()
{
$content = $this->assetType->getContent();
/**
* Do not use ob_gzhandler() if zlib.output_compression ini option is set
* This will gzip the output twice and the text will be garbled
*/
if (@ini_get('zlib.output_compression')) {
$ret = $content;
} else {
if (!($ret = ob_gzhandler($content, PHP_OUTPUT_HANDLER_START | PHP_OUTPUT_HANDLER_END))) {
$ret = $content;
}
}
return $ret;
}
开发者ID:is00hcw,项目名称:munee,代码行数:22,代码来源:Response.php
示例11: gzHandler
public function gzHandler($buffer = '', $mode = 0)
{
if (!is_string($buffer)) {
return Error::set(lang('Error', 'stringParameter', 'buffer'));
}
if (!is_numeric($mode)) {
return Error::set(lang('Error', 'numericParameter', 'mode'));
}
return ob_gzhandler($buffer, $mode);
}
开发者ID:Allopa,项目名称:ZN-Framework-Starter,代码行数:10,代码来源:OB.php
示例12: dolphin_handler
function dolphin_handler($str)
{
$str = ob_gzhandler($str, 5);
header("Content-length: " . strlen($str));
return $str;
}
开发者ID:bakyt,项目名称:Dolphin.php,代码行数:6,代码来源:index.php
示例13: atm_compress_handler
/**
* Launch output compression if enabled
*/
function atm_compress_handler($p_buffer, $p_mode)
{
if (ENABLE_HTML_COMPRESSION && APPLICATION_EXEC_TYPE == 'http' && !headers_sent() && 'ob_gzhandler' != ini_get('output_handler') && extension_loaded('zlib') && strpos(strtolower(@$_SERVER['HTTP_ACCEPT_ENCODING']), 'gzip') !== false && !ini_get('zlib.output_compression')) {
//no output compression should already defined at PHP level
if (!defined('HTML_COMPRESSION_STARTED')) {
define('HTML_COMPRESSION_STARTED', true);
}
return ob_gzhandler($p_buffer, $p_mode);
} else {
return $p_buffer;
}
}
开发者ID:davidmottet,项目名称:automne,代码行数:15,代码来源:cms_rc.php
示例14: output
/**
* Output callback method which will be called when the output buffer
* is flushed at the end of the request.
*
* @param string $uValue the generated content
* @param int $uStatus the status of the output buffer
*
* @return string final content
*/
public static function output($uValue, $uStatus)
{
$tParms = array('exitStatus' => &self::$exitStatus, 'responseFormat' => &self::$responseFormat, 'content' => &$uValue);
Events::invoke('output', $tParms);
if (ini_get('output_handler') === "") {
$tParms['content'] = mb_output_handler($tParms['content'], $uStatus);
// PHP_OUTPUT_HANDLER_START | PHP_OUTPUT_HANDLER_END
if (!ini_get('zlib.output_compression') && PHP_SAPI !== 'cli' && Config::get('options/gzip', true) === true) {
$tParms['content'] = ob_gzhandler($tParms['content'], $uStatus);
// PHP_OUTPUT_HANDLER_START | PHP_OUTPUT_HANDLER_END
}
}
return $tParms['content'];
}
开发者ID:eserozvataf,项目名称:scabbia1,代码行数:23,代码来源:Framework.php
示例15: handler
function handler($buffer, $mode)
{
$buffer = ob_gzhandler($buffer, $mode);
return $buffer;
}
开发者ID:alexanderweigelt,项目名称:Surftime-3.0.3,代码行数:5,代码来源:handler.php
示例16: enableCompression
/**
* Enables compression. (warning: may not work)
* @return bool
*/
public function enableCompression()
{
if (headers_sent()) {
return FALSE;
}
if ($this->getHeader('Content-Encoding') !== NULL) {
return FALSE;
// called twice
}
$ok = ob_gzhandler('', PHP_OUTPUT_HANDLER_START);
if ($ok === FALSE) {
return FALSE;
// not allowed
}
if (function_exists('ini_set')) {
ini_set('zlib.output_compression', 'Off');
ini_set('zlib.output_compression_level', '6');
}
ob_start('ob_gzhandler', 1);
return TRUE;
}
开发者ID:bazo,项目名称:Mokuji,代码行数:25,代码来源:HttpResponse.php
示例17: defined
<?php
defined('LOAD_SAFE') or die('Server Error');
$start_time = microtime();
$gzip = ob_gzhandler($buffer, 1);
if ($gzip) {
header("Content-Encoding: gzip");
ob_start('ob_gzhandler');
} else {
ob_start();
}
if (version_compare(phpversion(), '5.1.0', '<') == true) {
die("PHP5 = false : PHP5 required");
}
////////////////////////////////////
// Define root directory
////////////////////////////////////
define('__SITE_PATH', realpath(dirname(__FILE__)));
////////////////////////////////////
// Get Configuration Object
////////////////////////////////////
include __SITE_PATH . "/core/library/config.class.php";
$configuration = configuration::getInstance();
////////////////////////////////////
// Set system time
////////////////////////////////////
$date_time = date($configuration->config_values['application']['date_format']);
////////////////////////////////////
// Set Time Zone
////////////////////////////////////
date_default_timezone_set($configuration->config_values['application']['timezone']);
开发者ID:Goddard,项目名称:Magi-Portal,代码行数:31,代码来源:root.php
示例18: execApi
/**
* 执行Api控制器
*/
public static function execApi()
{
include_once SITE_PATH . '/api/' . API_VERSION . '/' . MODULE_NAME . 'Api.class.php';
$className = MODULE_NAME . 'Api';
$module = new $className();
$action = ACTION_NAME;
//执行当前操作
$data = call_user_func(array(&$module, $action));
$format = in_array($_REQUEST['format'], array('json', 'php', 'test')) ? $_REQUEST['format'] : 'json';
$format = strtolower($format);
/* json */
if ($format == 'json') {
ob_end_clean();
ob_start(function ($buffer, $mode) {
if (extension_loaded('zlib') and function_exists('ob_gzhandler')) {
return ob_gzhandler($buffer, $mode);
}
return $buffer;
});
header('Content-type:application/json;charset=utf-8');
echo json_encode($data);
ob_end_flush();
exit;
/* php */
} elseif ($format == 'php') {
var_export($data);
exit;
/* test */
} elseif ($format == 'test') {
dump($data);
exit;
}
return;
}
开发者ID:medz,项目名称:thinksns-4,代码行数:37,代码来源:App.class.php
示例19: ini_set
<?php
if (false !== ob_gzhandler("", PHP_OUTPUT_HANDLER_START)) {
ini_set("zlib.output_compression", 0);
ob_start("ob_gzhandler");
}
echo "hi\n";
开发者ID:gleamingthecube,项目名称:php,代码行数:7,代码来源:ext_zlib_tests_ob_gzhandler_legacy_002.php
示例20: compress_handler
/**
* Output Buffering handler that either compresses the buffer or just.
* returns it, depending on the return value of compress_handler_is_enabled()
* @param string $p_buffer
* @param int $p_mode
* @return string
* @access public
*/
function compress_handler( & $p_buffer, $p_mode ) {
global $g_compression_started;
if( $g_compression_started && compress_handler_is_enabled() ) {
return ob_gzhandler( $p_buffer, $p_mode );
} else {
return $p_buffer;
}
}
开发者ID:rombert,项目名称:mantisbt,代码行数:16,代码来源:compress_api.php
注:本文中的ob_gzhandler函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论