本文整理汇总了PHP中gzip_accepted函数的典型用法代码示例。如果您正苦于以下问题:PHP gzip_accepted函数的具体用法?PHP gzip_accepted怎么用?PHP gzip_accepted使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gzip_accepted函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: super_cache_invalidate
function super_cache_invalidate()
{
//Now, we are actually using the referrer and not the request, with some precautions
$GLOBALS['wp_cache_request_uri'] = substr($_SERVER['HTTP_REFERER'], stripos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) + strlen($_SERVER[''] . $_SERVER['HTTP_HOST']));
$GLOBALS['wp_cache_request_uri'] = preg_replace('/[ <>\'\\"\\r\\n\\t\\(\\)]/', '', str_replace('/index.php', '/', str_replace('..', '', preg_replace("/(\\?.*)?\$/", '', $GLOBALS['wp_cache_request_uri']))));
// get some supercache variables
extract(wp_super_cache_init());
tp_logger(wp_super_cache_init());
// this is hackery for logged in users, a cookie is added to the request somehow and gzip is not correctly set, so we forcefully fix this
if (!$cache_file) {
$GLOBALS['wp_cache_gzip_encoding'] = gzip_accepted();
unset($_COOKIE[key($_COOKIE)]);
extract(wp_super_cache_init());
tp_logger(wp_super_cache_init());
}
$dir = get_current_url_supercache_dir();
// delete possible files that we can figure out, not deleting files for other cookies for example, but will do the trick in most cases
$cache_fname = "{$dir}index.html";
tp_logger("attempting delete of supercache: {$cache_fname}");
@unlink($cache_fname);
$cache_fname = "{$dir}index.html.gz";
tp_logger("attempting delete of supercache: {$cache_fname}");
@unlink($cache_fname);
tp_logger("attempting delete of wp_cache: {$cache_file}");
@unlink($cache_file);
tp_logger("attempting delete of wp_cache_meta: {$meta_pathname}");
@unlink($meta_pathname);
// go at edit pages too
$GLOBALS['wp_cache_request_uri'] .= "?edit=1";
extract(wp_super_cache_init());
tp_logger(wp_super_cache_init());
tp_logger("attempting delete of edit_wp_cache: {$cache_file}");
@unlink($cache_file);
tp_logger("attempting delete of edit_wp_cache_meta: {$meta_pathname}");
@unlink($meta_pathname);
}
示例2: wp_cache_serve_cache_file
function wp_cache_serve_cache_file()
{
global $key, $blogcacheid, $wp_cache_request_uri, $file_prefix, $blog_cache_dir, $meta_file, $cache_file, $cache_filename, $wp_super_cache_debug, $meta_pathname, $wp_cache_gzip_encoding, $meta;
global $wp_cache_object_cache, $cache_compression, $wp_cache_slash_check, $wp_supercache_304, $wp_cache_home_path, $wp_cache_no_cache_for_get;
global $wp_cache_disable_utf8, $wp_cache_mfunc_enabled;
extract(wp_super_cache_init());
if (wp_cache_user_agent_is_rejected()) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("No wp-cache file served as user agent rejected.", 5);
}
return false;
}
if ($wp_cache_no_cache_for_get && false == empty($_GET)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Non empty GET request. Caching disabled on settings page. " . print_r($_GET, 1), 1);
}
return false;
}
if ($wp_cache_object_cache && wp_cache_get_cookies_values() == '') {
if (!empty($_GET)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Non empty GET request. Not serving request from object cache. " . print_r($_GET, 1), 1);
}
return false;
}
$oc_key = get_oc_key();
$meta_filename = $oc_key . ".meta";
if (gzip_accepted()) {
$oc_key .= ".gz";
$meta_filename .= ".gz";
}
$cache = wp_cache_get($oc_key, 'supercache');
$meta = unserialize(wp_cache_get($meta_filename, 'supercache'));
if (is_array($meta) == false) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Meta array from object cache corrupt. Ignoring cache.", 1);
}
return true;
}
} elseif (file_exists($cache_file)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("wp-cache file exists: {$cache_file}", 5);
}
if (!($meta = unserialize(@file_get_contents($meta_pathname)))) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("couldn't load wp-cache meta file", 5);
}
return true;
}
if (is_array($meta) == false) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("meta array corrupt, deleting {$meta_pathname} and {$cache_file}", 1);
}
@unlink($meta_pathname);
@unlink($cache_file);
return true;
}
} else {
// last chance, check if a supercache file exists. Just in case .htaccess rules don't work on this host
$filename = supercache_filename();
$file = get_current_url_supercache_dir() . $filename;
if (false == file_exists($file)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("No Super Cache file found for current URL: {$file}");
}
return false;
} elseif (false == empty($_GET)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("GET array not empty. Cannot serve a supercache file. " . print_r($_GET, 1));
}
return false;
} elseif (wp_cache_get_cookies_values() != '') {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Cookies found. Cannot serve a supercache file. " . wp_cache_get_cookies_values());
}
return false;
}
if (isset($wp_cache_mfunc_enabled) == false) {
$wp_cache_mfunc_enabled = 0;
}
if (false == isset($wp_cache_home_path)) {
$wp_cache_home_path = '/';
}
// make sure ending slashes are ok
if ($wp_cache_request_uri == $wp_cache_home_path || $wp_cache_slash_check && substr($wp_cache_request_uri, -1) == '/' || $wp_cache_slash_check == 0 && substr($wp_cache_request_uri, -1) != '/') {
if ($wp_cache_mfunc_enabled == 0) {
// get data from file
if ($wp_cache_gzip_encoding) {
if (file_exists($file . '.gz')) {
$cachefiledata = file_get_contents($file . '.gz');
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Fetched gzip static page data from supercache file using PHP. File: {$file}.gz");
}
} else {
$cachefiledata = gzencode(file_get_contents($file), 6, FORCE_GZIP);
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Fetched static page data from supercache file using PHP and gzipped it. File: {$file}");
}
}
} else {
//.........这里部分代码省略.........
示例3: wp_cache_shutdown_callback
function wp_cache_shutdown_callback()
{
global $cache_path, $cache_max_time, $file_expired, $file_prefix, $meta_file, $new_cache, $wp_cache_meta, $known_headers, $blog_id, $wp_cache_gzip_encoding, $gzsize, $cache_filename, $supercacheonly, $blog_cache_dir;
global $wp_cache_request_uri, $wp_cache_key, $wp_cache_object_cache, $cache_enabled, $wp_cache_blog_charset, $wp_cache_not_logged_in;
$wp_cache_meta['uri'] = $_SERVER["SERVER_NAME"] . preg_replace('/[ <>\'\\"\\r\\n\\t\\(\\)]/', '', $wp_cache_request_uri);
// To avoid XSS attacks
$wp_cache_meta['blog_id'] = $blog_id;
$wp_cache_meta['post'] = wp_cache_post_id();
$wp_cache_meta['key'] = $wp_cache_key;
$wp_cache_meta = apply_filters('wp_cache_meta', $wp_cache_meta);
$response = wp_cache_get_response_headers();
foreach ($known_headers as $key) {
if (isset($response[$key])) {
$wp_cache_meta['headers'][$key] = "{$key}: " . $response[$key];
}
}
if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
wp_cache_debug("wp_cache_shutdown_callback: collecting meta data.", 2);
}
if (!isset($response['Last-Modified'])) {
$value = gmdate('D, d M Y H:i:s') . ' GMT';
/* Dont send this the first time */
/* @header('Last-Modified: ' . $value); */
$wp_cache_meta['headers']['Last-Modified'] = "Last-Modified: {$value}";
}
if (!isset($response['Content-Type']) && !isset($response['Content-type'])) {
// On some systems, headers set by PHP can't be fetched from
// the output buffer. This is a last ditch effort to set the
// correct Content-Type header for feeds, if we didn't see
// it in the response headers already. -- dougal
if (is_feed()) {
$type = get_query_var('feed');
$type = str_replace('/', '', $type);
switch ($type) {
case 'atom':
$value = "application/atom+xml";
break;
case 'rdf':
$value = "application/rdf+xml";
break;
case 'rss':
case 'rss2':
default:
$value = "application/rss+xml";
}
} else {
// not a feed
$value = get_option('html_type');
if ($value == '') {
$value = 'text/html';
}
}
$value .= "; charset=\"" . $wp_cache_blog_charset . "\"";
if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
wp_cache_debug("Sending 'Content-Type: {$value}' header.", 2);
}
@header("Content-Type: {$value}");
$wp_cache_meta['headers']['Content-Type'] = "Content-Type: {$value}";
}
if (!$supercacheonly && !$wp_cache_not_logged_in && $new_cache) {
if (!isset($wp_cache_meta['dynamic']) && $wp_cache_gzip_encoding && !in_array('Content-Encoding: ' . $wp_cache_gzip_encoding, $wp_cache_meta['headers'])) {
if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
wp_cache_debug("Sending gzip headers.", 2);
}
$wp_cache_meta['headers']['Content-Encoding'] = 'Content-Encoding: ' . $wp_cache_gzip_encoding;
$wp_cache_meta['headers']['Vary'] = 'Vary: Accept-Encoding, Cookie';
}
$serial = serialize($wp_cache_meta);
if (wp_cache_writers_entry()) {
if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
wp_cache_debug("Writing meta file: {$blog_cache_dir}meta/{$meta_file}", 2);
}
if (false == $wp_cache_object_cache) {
$tmp_meta_filename = $blog_cache_dir . 'meta/' . uniqid(mt_rand(), true) . '.tmp';
$fr = @fopen($tmp_meta_filename, 'w');
if (!$fr) {
@mkdir($blog_cache_dir . 'meta');
}
$fr = @fopen($tmp_meta_filename, 'w');
if ($fr) {
fputs($fr, $serial);
fclose($fr);
@chmod($tmp_meta_filename, 0666 & ~umask());
if (!@rename($tmp_meta_filename, $blog_cache_dir . 'meta/' . $meta_file)) {
@unlink($blog_cache_dir . 'meta/' . $meta_file);
@rename($tmp_meta_filename, $blog_cache_dir . 'meta/' . $meta_file);
}
} else {
if (isset($GLOBALS['wp_super_cache_debug']) && $GLOBALS['wp_super_cache_debug']) {
wp_cache_debug("Problem writing meta file: {$blog_cache_dir}meta/{$meta_file}", 2);
}
}
} elseif ($cache_enabled) {
$oc_key = get_oc_key() . ".meta";
if (gzip_accepted()) {
$oc_key .= ".gz";
}
wp_cache_set($oc_key, $serial, 'supercache', $cache_max_time);
}
wp_cache_writers_exit();
//.........这里部分代码省略.........
示例4: wp_cache_serve_cache_file
function wp_cache_serve_cache_file()
{
global $key, $blogcacheid, $wp_cache_request_uri, $file_prefix, $blog_cache_dir, $meta_file, $cache_file, $cache_filename, $wp_super_cache_debug, $meta_pathname, $wp_cache_gzip_encoding, $meta;
global $wp_cache_object_cache, $cache_compression, $wp_cache_slash_check, $wp_supercache_304;
extract(wp_super_cache_init());
if (wp_cache_user_agent_is_rejected()) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("No wp-cache file served as user agent rejected.", 5);
}
return false;
}
if ($wp_cache_object_cache && wp_cache_get_cookies_values() == '') {
if (!empty($_GET)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Non empty GET request. Not serving request from object cache", 1);
}
return false;
}
$oc_key = get_oc_key();
$meta_filename = $oc_key . ".meta";
if (gzip_accepted()) {
$oc_key .= ".gz";
$meta_filename .= ".gz";
}
$cache = wp_cache_get($oc_key, 'supercache');
$meta = unserialize(wp_cache_get($meta_filename, 'supercache'));
if (is_array($meta) == false) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Meta array from object cache corrupt. Ignoring cache.", 1);
}
return true;
}
} elseif (file_exists($cache_file)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("wp-cache file exists: {$cache_file}", 5);
}
if (!($meta = unserialize(@file_get_contents($meta_pathname)))) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("couldn't load wp-cache meta file", 5);
}
return true;
}
if (is_array($meta) == false) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("meta array corrupt, deleting {$meta_pathname} and {$cache_file}", 1);
}
@unlink($meta_pathname);
@unlink($cache_file);
return true;
}
} else {
// last chance, check if a supercache file exists. Just in case .htaccess rules don't work on this host
$file = get_current_url_supercache_dir() . "index.html";
$phpfile = get_current_url_supercache_dir() . "index.html.php";
$serving_supercache = false;
if (file_exists($file)) {
$serving_supercache = 'html';
} elseif (file_exists($phpfile)) {
$serving_supercache = 'php';
}
if (($wp_cache_request_uri == '/' || $wp_cache_slash_check && substr($wp_cache_request_uri, -1) == '/' || $wp_cache_slash_check == 0 && substr($wp_cache_request_uri, -1) != '/') && (wp_cache_get_cookies_values() == '' && empty($_GET) && $serving_supercache)) {
header("Content-type: text/html; charset=UTF-8");
// UTF-8 hard coded is bad but we don't know what it is this early in the process
header("Vary: Accept-Encoding, Cookie");
header("Cache-Control: max-age=300, must-revalidate");
header("WP-Super-Cache: Served supercache file from PHP");
if (file_exists($file . '.gz') && $wp_cache_gzip_encoding) {
$file = $file . '.gz';
header('Content-Encoding: ' . $wp_cache_gzip_encoding);
header('Content-Length: ' . filesize($file));
} elseif ($serving_supercache == 'html' && $wp_supercache_304) {
header('Content-Length: ' . filesize($file));
}
if ($serving_supercache == 'html' && $wp_supercache_304) {
if (function_exists('apache_request_headers')) {
$request = apache_request_headers();
$remote_mod_time = $request['If-Modified-Since'];
} else {
$remote_mod_time = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
}
$local_mod_time = gmdate("D, d M Y H:i:s", filemtime($file)) . ' GMT';
if ($remote_mod_time == $local_mod_time) {
header("HTTP/1.0 304 Not Modified");
exit;
}
header('Last-Modified: ' . $local_mod_time);
}
if ($serving_supercache == 'html') {
readfile($file);
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Served page from supercache file using PHP.", 5);
}
exit;
} elseif ($serving_supercache == 'php') {
$cachefiledata = file_get_contents($phpfile);
if ($cache_compression and $wp_cache_gzip_encoding) {
ob_start("ob_gzhandler");
eval('?>' . $cachefiledata . '<?php ');
echo "\n<!-- Compression = gzip -->\n";
ob_end_flush();
//.........这里部分代码省略.........
示例5: gzip_accepted
$wp_cache_gzip_encoding = '';
$gzipped = 0;
$gzsize = 0;
function gzip_accepted()
{
if (ini_get('zlib.output_compression')) {
// don't compress WP-Cache data files when PHP is already doing it
return false;
}
if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') === false) {
return false;
}
return 'gzip';
}
if ($cache_compression) {
$wp_cache_gzip_encoding = gzip_accepted();
}
add_cacheaction('wp_cache_key', 'wp_cache_check_mobile');
$key = $blogcacheid . md5(do_cacheaction('wp_cache_key', $_SERVER['HTTP_HOST'] . preg_replace('/#.*$/', '', str_replace('/index.php', '/', $_SERVER['REQUEST_URI'])) . $wp_cache_gzip_encoding . wp_cache_get_cookies_values()));
if (false == @is_dir($blog_cache_dir)) {
@mkdir($cache_path . "blogs");
@mkdir($blog_cache_dir);
}
if (false == @is_dir($blog_cache_dir . 'meta')) {
@mkdir($blog_cache_dir . 'meta');
}
$cache_filename = $file_prefix . $key . '.html';
$meta_file = $file_prefix . $key . '.meta';
$cache_file = realpath($blog_cache_dir . $cache_filename);
$meta_pathname = realpath($blog_cache_dir . 'meta/' . $meta_file);
$wp_start_time = microtime();
示例6: wp_cache_serve_cache_file
function wp_cache_serve_cache_file()
{
global $key, $blogcacheid, $wp_cache_request_uri, $file_prefix, $blog_cache_dir, $meta_file, $cache_file, $cache_filename, $wp_super_cache_debug, $meta_pathname, $wp_cache_gzip_encoding, $meta;
global $wp_cache_object_cache, $cache_compression, $wp_cache_slash_check;
extract(wp_super_cache_init());
if (wp_cache_user_agent_is_rejected()) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("No wp-cache file served as user agent rejected.", 5);
}
return false;
}
if ($wp_cache_object_cache && wp_cache_get_cookies_values() == '') {
if (!empty($_GET)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Non empty GET request. Not serving request from object cache", 1);
}
return false;
}
$oc_key = get_oc_key();
$meta_filename = $oc_key . ".meta";
if (gzip_accepted()) {
$oc_key .= ".gz";
$meta_filename .= ".gz";
}
$cache = wp_cache_get($oc_key, 'supercache');
$meta = unserialize(wp_cache_get($meta_filename, 'supercache'));
if (is_array($meta) == false) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Meta array from object cache corrupt. Ignoring cache.", 1);
}
return true;
}
} elseif (file_exists($cache_file)) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("wp-cache file exists: {$cache_file}", 5);
}
if (!($meta = unserialize(@file_get_contents($meta_pathname)))) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("couldn't load wp-cache meta file", 5);
}
return true;
}
if (is_array($meta) == false) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("meta array corrupt, deleting {$meta_pathname} and {$cache_file}", 1);
}
@unlink($meta_pathname);
@unlink($cache_file);
return true;
}
} else {
// last chance, check if a supercache file exists. Just in case .htaccess rules don't work on this host
$file = get_current_url_supercache_dir() . "index.html";
if (($wp_cache_request_uri == '/' || $wp_cache_slash_check && substr($wp_cache_request_uri, -1) == '/' || $wp_cache_slash_check == 0 && substr($wp_cache_request_uri, -1) != '/') && (wp_cache_get_cookies_values() == '' && empty($_GET) && file_exists($file))) {
header("Content-type: text/html; charset=UTF-8");
// UTF-8 hard coded is bad but we don't know what it is this early in the process
header("Vary: Accept-Encoding, Cookie");
header("Cache-Control: max-age=300, must-revalidate");
header("WP-Cache: Served supercache file from PHP");
readfile($file);
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Served page from supercache file. Mod rewrite rules may be broken or missing.", 5);
}
die;
} else {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("No wp-cache file exists. Must generate a new one.", 5);
}
return false;
}
}
$cache_file = do_cacheaction('wp_cache_served_cache_file', $cache_file);
// Sometimes the gzip headers are lost. Make sure html returned isn't compressed!
if ($cache_compression && $wp_cache_gzip_encoding && !in_array('Content-Encoding: ' . $wp_cache_gzip_encoding, $meta['headers'])) {
$ungzip = true;
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("GZIP headers not found. Force uncompressed output.", 1);
}
} else {
$ungzip = false;
}
foreach ($meta['headers'] as $t => $header) {
// godaddy fix, via http://blog.gneu.org/2008/05/wp-supercache-on-godaddy/ and http://www.littleredrails.com/blog/2007/09/08/using-wp-cache-on-godaddy-500-error/
if (strpos($header, 'Last-Modified:') === false) {
header($header);
}
}
header('WP-Super-Cache: WP-Cache');
if ($wp_cache_object_cache) {
if ($cache) {
if ($ungzip) {
$uncompressed = gzuncompress($cache);
if ($uncompressed) {
if (isset($wp_super_cache_debug) && $wp_super_cache_debug) {
wp_cache_debug("Uncompressed gzipped cache file from object cache", 1);
}
$cache = $uncompressed;
unset($uncompressed);
}
}
//.........这里部分代码省略.........