1

我希望在站点的主脚本之上包含智能 PHP 缓存层。它工作得很好,但智能缓存也会缓存一些不应该被缓存的页面(搜索结果、管理区域......)。

我查看了Smart PHP Cache source code,我不确定是否有某种方法可以配置哪些页面应该从缓存中排除,或者如何配置它。

所以,我需要的是一些 php 代码,它们将被插入到站点的主脚本顶部,在智能 PHP 缓存代码之前,它将首先检查页面是否包含例如:

“/搜索/”

“/行政/”

“/最新的/”

“/其他实时页面/实时页面.php”

然后,如果上面示例中的某些内容在 URL 中什么都不做,(不包含 smart_cache.php 并继续使用其他正常代码,因此用户可以看到实时结果),否则如果上面没有包含 smart_cache.php .

或者。

如果您有更好的知识在智能 PHP 缓存中进行修改,以便能够从缓存机制中排除一些 URL(或者告诉我如何做到这一点,因为看起来智能 PHP 缓存的配置中有一些东西可以绕过缓存层,但我不知道如何使用它。

最好的祝福。


问题更新:

感谢您的回答。它工作得很好,我只是想问你能不能稍微改变一下代码来做到这一点:

如果“pos1”(如果 URL 包含“/search”),则比什么都没有,false,就像现在一样

如果“pos2”(如果 URL 包含“/admin”),则比没有,假,就像现在一样

如果“pos3”(如果 URL 包含“/latest”)包含文件“smart_cache_latest.php”

之后就像现在一样,为任何其他 URL 包含“smart_cache.php”。

因此,实际上只有带有"/latest"的 URL 的变化,也应该通过包含 "smart_cache_latest.php" 来缓存。

最好的祝福。

4

1 回答 1

2
$currenturl = $_SERVER['REQUEST_URI'];
$pos1 = strpos($currenturl, "/search");
$pos2 = strpos($currenturl, "/admin");
$pos3 = strpos($currenturl, "/latest");

if ($pos1 === false && $pos2 === false){
    require '/path/to/smart_cache.php';
} elseif($pos3 == true) {
    require '/path/to/smart_cache_latest.php';        
}
于 2012-04-29T11:21:09.430 回答