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

开启缓存的配置文件 /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      [email protected]
 * @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;
}





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。