牛骨文教育服务平台(让学习变的简单)
博文笔记

ThinkPHP 3.2 开启 cache缓存的注意事项,过滤非法字符

创建时间:2014-10-22 投稿人: 浏览次数:186

开启缓存的配置文件 /Application/Common/conf/cache.php源码如下:

<?php
return array(
    //"配置项"=>"配置值"
    "LAYOUT_ON"        => true,
    "HTML_CACHE_ON"    => strpos($_SERVER["HTTP_HOST"], ".") !== false, // 开启静态缓存 默认为 true 本地不开启
    "HTML_CACHE_TIME"  => 3600, // 全局静态缓存有效期(秒)
    "HTML_FILE_SUFFIX" => ".shtml", // 设置静态缓存文件后缀
    "HTML_CACHE_RULES" => array(
        "*" => array("{:module}/{:controller}/{:action}/{$_SERVER.REQUEST_URI|md5}", 3600, "trimSW"),
    )
);

注意:背后的 trimSW是去除所有非 / w 的字符串,防止输入中文等特殊字符某些系统报错。

函数 trimSW的源码:

/**
 * @author      default7@zbphp.com
 * @description 去除 空格 和非w 字符串,用于cache 配置
 *
 * @param        $str
 * @param string $emptyValue
 *
 * @return mixed|string
 */
function trimSW($str, $emptyValue = "_empty_")
{
    $str = preg_replace("/([^w/]+)/", "-", $str);
    if (empty($str)) {
        $str = $emptyValue;
    }

    return $str;
}





声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。