smarty中的cache_id问题

##########################################
function useCahe($cachPath="",$lifetime=0)
{
  global $tpl,$config;
  $tpl->caching = true; //设置缓存方式
  $tpl->cache_dir = $config['webroot'].'/cache/'.$cachPath;
  if($lifetime)
  $tpl->cache_lifetime = -1 ; //永久有效
  else
  $tpl->cache_lifetime = $config['cacheTime'] ; //设置缓存时间
}

useCahe("phone_netnum/",1);//useCahe是用来设定缓存的开启和目录,刷新时间等。
$flag=md5($dpid.$dcid.$config["temp"].$_GET["id"]); //由于有变量,所以需要指定cache_id
if(!$tpl->is_cached("phone_netnum_con.htm",$flag))//判断是否被缓存
{

    
$strSQL="SELECT AREANUM FROM ".PHONE." WHERE NETNUM='".$strNetNum."' AND (AREANUM>='".$start."' AND AREANUM<='".$end."')";
    
$db->query($strSQL);
    
$arrRe = $db->getRows();
    
    
$tpl -> assign("config",$config);
    
$tpl -> assign("strNetNum",$strNetNum);
    
$tpl -> assign("arrRe",$arrRe);
}
$tpl-> display("phone_netnum_con.htm",$flag);//*这里一定要带上$flag,找了两天的错误,终于顿悟
生成的缓存文件ef8446f35513a8d6aa2308357a268a7e^%%43^43F^43FF4FDF%%phone_netnum_con.htm
其中ef8446f35513a8d6aa2308357a268a7e是$flag,cache_id也在其中。
原文地址:https://www.cnblogs.com/derrck/p/1495942.html