如果URL包含的东西包括.php文件,否则什么都不做?

时间:2012-04-29 11:11:29

标签: php caching if-statement

我希望在网站主脚本的顶部包含Smart PHP Cache图层。它运行良好,但智能缓存还缓存了一些不应缓存的页面(搜索结果,管理区域......)。

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

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

“/搜索/”

“/管理/”

“/最新/”

“/另一活页/活page.php文件”

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

或者

如果您有更好的知识在Smart PHP Cache内进行修改,以便能够从缓存机制中排除某些URL(或者告诉我如何执行此操作,因为看起来智能PHP缓存的配置中有一些内容可以绕过缓存层,但我不知道如何使用它。

最好的问候。


问题更新:

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

如果“pos1”(如果URL包含“/ search”),则不是虚假,就像它现在一样

if“pos2”(如果URL包含“/ admin”),而不是虚假,就像它现在一样

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

之后就像现在一样,为任何其他网址添加“smart_cache.php”。

所以实际上只对含有“/ latest”的网址进行更改,这也应该通过包含“smart_cache_latest.php”进行缓存。

最好的问候。

1 个答案:

答案 0 :(得分: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';        
}