花了点时间写了下测试框架

[程序]花了点时间写了个数据缓存类,敬请大家指正

03-04

cachedata($cachename,$sql,$cachepath))rn* rn* echo "缓存成功";rn* rn* elsern* rn* echo "缓存失败";rn* rn*/rnclass cachernrn var $db;rnrn /** BEGIN functionrn *rn * 作者:偶然rn * 功能:构造函数,用于初始化数据rn * 时间:2004.3.4rn *rn */rn function cache(&$db)rn rn $this->db = &$db;//引入数据库类实例rn rnrn /** BEGIN functionrn *rn * 作者:偶然rn * 功能:将数组结构存为缓存页面rn * 时间:2004.3.4rn *rn */rn function cachedata($cachename,$sql,$cachepath)rn rn $data = $this->cachearray($cachename,$sql);rn if($this->wfile($cachepath,"","w"))rn rn Return true;rn rn elsern rn Return false;rn rn rnrn /** BEGIN functionrn *rn * 作者:偶然rn * 功能:格式化数组输出,此方法参考了discuz2.0的缓存方法rn * 将数组中的数据结合成数组形式的字串来保存rn * 时间:2004.3.4rn *rn */rn function arrayeval($array, $level = 0)rn rn $space = '';rn for($i = 0; $i <= $level; $i++)rn rn $space .= " ";//四位空格rn rn $structure = "Array\n$space(\n";rn $comma = "$space";rn foreach($array as $key => $val)rn rn $key = is_string($key) ? "'".addcslashes($key, '\'\\')."'" : $key;rn $val = is_string($val) ? "'".addcslashes($val, '\'\\')."'" : $val;rn if(is_array($val))rn rn $structure .= "$comma$key => ".$this->arrayeval($val, $level + 1);//递归rn rn elsern rn $structure .= "$comma$key => $val";rn rn $comma = ",\n$space";rn rn $structure .= "\n$space)";rn return $structure;rn rnrn /** BEGIN functionrn *rn * 作者:偶然rn * 功能:缓存数据结构rn * 本函数调用了arrayeval来格式化输出rn * 时间:2004.3.4rn */rn function cachearray($cachename,$sql)rn rn $res = $this->db->query($sql);rn if(!$res)rn rn die("未能成功执行SQL");rn rn $j = 0;rn $item = array();rn while($j<$this->db->num_fields($res))rn rn $meta = $this->db->fetch_field($res);rn $item[$meta->name] = $meta->name;rn $j++;rn rn $i = 0;rn $cache = array();rn while($arr = $this->db->fetch_array($res))rn rn foreach($item as $val)rn rn $cache[$i][$val] = $arr[$val];rn rn $i++;rn rn $this->db->free_result($res);rn return "\$_CACHE['".$cachename."'] = ".$this->arrayeval($cache).";\r\n";rn rnrn /** BEGIN functionrn *rn * 作者:偶然rn * 功能:生成缓存页面rn * 时间:2004.3.4rn *rn */rn function wfile($file,$content,$mode='w')rn rn $oldmask = @umask(0);rn $fp = @fopen($file,$mode);rn @flock($fp, 3);rn if(!$fp)rn rn Return false;rn rn elsern rn @fwrite($fp,$content);rn @fclose($fp);rn @umask($oldmask);rn Return true;rn rn rnrn?>

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭