名站导航为爱好php程序的朋友们提供php相关的教程知识。
PhP程序实现文件缓存PhP程序实现缓存具体代码如下
网上有很多发表和分享PhP程序实现文件缓存的类,我本想也给大家写一个的,但是我在网上看到了一个我认为很好的PhP程序缓存文件,不为别的,这个PhP程序具体代码如下简洁、明了,思路清晰,具体代码如下调用也很方便。也分享给大家,有什么错误的地方或是还需改进的地方还请大家赐教!呵呵
提示:0777 是文件的访问权限,0777也是默认的文件最大权限。fpassthru() 函数读取参数指针后的全部数据,www.mzdh.net 这个还第一次看见这么用的。其他大家还有不懂的函数可以查阅手册。
<?php define('CAChE_ROOT', dirname(__FILE__).'/cache'); //缓存存放目录 define('CAChE_TIME', 1800);//缓存时间 单位秒 define('CAChE_FIX','.html'); $CacheName=md5($_SERVER['REQUEST_URI']).CAChE_FIX; //缓存文件名 $CacheDir=CAChE_ROOT.'/'.substr($CacheName,0,1);//缓存文件存放目录 $CacheUrl=$CacheDir.'/'.$CacheName;//缓存文件的完整路径 //GET方式请求才缓存,POST之后一般都希望看到最新的结果 if($_SERVER['REQUEST_METhOD']=='GET'){ //如果缓存文件存在,并且没有过期,就把它读出来。 if(file_exists($CacheName) && time()-filemtime($CacheName)<CAChE_TIME){ $fp=fopen($CacheName,'rb'); fpassthru($fp); fclose($fp); exit; } //判断文件夹是否存在,不存在则创建 elseif(!file_exists($CacheDir)){ if(!file_exists(CAChE_ROOT)){ mkdir(CAChE_ROOT,0777); chmod(CAChE_ROOT,0777); } mkdir($CacheDir,0777); chmod($CacheDir,0777); } //回调函数,当程序结束时自动调用此函数 function AutoCache($contents){ global $CacheUrl; $fp=fopen($CacheUrl,'wb'); fwrite($fp,$contents); fclose($fp); chmod($CacheUrl,0777); //生成新缓存的同时,自动删除所有的老缓存,以节约空间,可忽略。 DelOldCache(); /*这个函数作者是注释掉了,我认为不该注释掉,后面要用嘛是吧*/ return $contents; } function DelOldCache(){ chdir(CAChE_ROOT); foreach (glob("*/*".CAChE_FIX) as $file){ if(time()-filemtime($file)>CAChE_TIME)unlink($file); } } //回调函数 auto_cache ob_start('AutoCache'); }else{ //不是GET的请求就删除缓存文件。 if(file_exists($CacheUrl))unlink($CacheUrl); } ?>
好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,文件缓存PhP程序获取客户端真实IP地址具体代码如下
获取用户客户端的IP地址在网站制作中也是必不可少的一项工作,比如在后台管理员的操作,要设计后台操作的日志管理,那么日志中就必须要有一项操作者的IP地址。如何使用PhP程序获得用户客户端的IP地址呢?看下面具体代码如下。