我有一个从以下代码生成的动态样式表。
将文件缓存到文件中的最佳方法是,如果文件存在,请加载它。
case 'stylesheet':
header('Content-type: text/css');
header("Cache-Control: must-revalidate");
$offset = 72000 ;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
$stylesheets = array(
'open_sans' => file_get_contents('http://fonts.googleapis.com/css?family=Open+Sans:400,600,700')
);
exit;
打印出来 echo CSS {$样式表[ 'open_sans']} CSS;
答案 0 :(得分:1)
我觉得我现在很好。
我发现了一个非常简单而强大的课程: https://github.com/gilbitron/PHP-SimpleCache
为了检查我在做什么:
if (file_exists(CACHE_PATH . 'stylesheet.cache')) {
require CACHE_PATH . 'stylesheet.cache';
exit;
答案 1 :(得分:0)
有一个简单的缓存实现here可以在像你这样的代码中使用。
答案 2 :(得分:0)
为什么不缓存整个网站而不仅仅是CSS文件。看看这个Cache。
答案 3 :(得分:0)
这是一个例子,很简单。 缓存CSS可以这样做:
require_once("phpfastcache/phpfastcache.php");
$css = __c()->get("csspage.user_id_something");
if($css == null) {
// handle your css function here
$css = "your handle function here";
// write to cache 1 hour
__c()->set("csspage.user_id_something", $css, 3600);
}
echo $css;
PHP Cache整个网页:您也可以使用phpFastCache轻松缓存整个网页。这是一个简单的示例,但在实际代码中,您应该将其拆分为2个文件:cache_start.php和cache_end.php。 cache_start.php将开始代码存储到ob_start(); cache_end.php将从GET HTML WEBPAGE开始。然后,index.php将在开头包含cache_start.php,在文件末尾包含cache_end.php。
<?php
// use Files Cache for Whole Page / Widget
// keyword = Webpage_URL
$keyword_webpage = md5($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING']);
$html = __c("files")->get($keyword_webpage);
if($html == null) {
ob_start();
/*
ALL OF YOUR CODE GO HERE
RENDER YOUR PAGE, DB QUERY, WHATEVER
*/
// GET HTML WEBPAGE
$html = ob_get_contents();
// Save to Cache 30 minutes
__c("files")->set($keyword_webpage,$html, 1800);
}
echo $html;
?>
减少数据库呼叫 PHP缓存类数据库:您的网站有10,000名在线访问者,您的动态页面必须在每次加载页面时向数据库发送10,000个相同的查询。使用phpFastCache,您的页面只向DB发送1个查询,并使用缓存为9,999个其他访问者提供服务。
<?php
// In your config file
include("phpfastcache/phpfastcache.php");
phpFastCache::setup("storage","auto");
// phpFastCache support "apc", "memcache", "memcached", "wincache" ,"files", "sqlite" and "xcache"
// You don't need to change your code when you change your caching system. Or simple keep it auto
$cache = phpFastCache();
// In your Class, Functions, PHP Pages
// try to get from Cache first.
// product_page = YOUR Identity Keyword
$products = $cache->product_page;
if($products == null) {
$products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION;
// set products in to cache in 600 seconds = 10 minutes
$cache->product_page = array($products,600);
}
foreach($products as $product) {
// Output Your Contents HERE
}
?>
答案 4 :(得分:0)
我建议你APC cache。它是PHP的稳定和快速的内存缓存。我将它用于我的整个应用程序,但如果你愿意,你可以使用它来保存变量。您可以将$ stylesheets ['open_sans']的内容(使用apc_store函数)保存在缓存变量中,然后从RAM存储器(快速)中提供服务(您将使用apc_fetch),只要您想要设置到期时间。