찾다
php教程PHP源码phpTaoke精简淘宝客_精简url_自动清理缓存_支持伪静态

phpTaoke精简淘宝客_精简url_自动清理缓存_支持伪静态 
现仅支持.htaccess伪静态,也可以根据此伪静态,编写其它伪静态规则 
暂无后台管理,只需要修改common.php 文件即可 
其中 
ALIMAMA_PID alimama api 很重要否则会给别人佣金啊 

WEB_PATH 目录 
以下是几种情况的写法 
非伪静态 temai目录下 
/temai/? 
非伪静态 根目录下 
/? 

伪静态 temai目录 
/temai/ 
伪静态根目录 

1.index.php

<?php
include(&#39;common.php&#39;);
include(&#39;function.php&#39;);
require_once(&#39;cache.inc.php&#39;);
$cache = new Cache(CACHE_PATH,CACHE_DATE); //省略参数即采用缺省设置, $cache = new Cache();
$cache->gz=WEB_GZ;//缓存文件压缩 默认为 0 关闭 1 gzcompress压缩 2 gzip输出 3 gzcompress压缩 和 gzip输出
$cache->auto_clear=AUTO_CLEAR;//自动清理过期缓存echo $weburl;exit;
$cache->load();
//正文
unset($_GET[&#39;spm&#39;]);
$urlname=array_keys($_GET);$urlname=explode("_html",$urlname[0]);
echo cacheurl($urlname[0]);
echo TONGJI;
//正文
$cache->write();
?>

2.common.php

<?php
header("content-Type: text/html; charset=gb2312");
define("DATA_PATH","data");//数据目录
define("CACHE_PATH","cache/");//缓存目录
define("WEB_PATH","/tao/?");//网站目录  更改此项需要更新 以上两个目录的缓存方法,http://域名/del.php
define("ALIMAMA_PID","mm_16329643_3221023_10596513");//alimama pid
define("CACHE_DATE",60*60*6);//缓存时间60*60*60下
define("AUTO_CLEAR",1);//自动清理过期缓存文件
define("WEB_GZ",1);//缓存文件压缩 默认为 0 关闭 1 gzcompress压缩 2 gzip输出 3 gzcompress压缩 和 gzip输出
 
define("MI_SEARCH","淘宝,w.cnzz.com");//手动替换操作 替换前的数组 用半角 , 分隔
define("MI_REPLACE","爱美丽,www.ibtf.net");//手动替换操作 替换后的数组   用半角 , 分隔
 
define("INDEX_URL","http://www.taobao.com/go/chn/tbk_channel/onsale.php?pid=".ALIMAMA_PID."&unid=&refpos=557_102559_0,a,null&clk1=92486b4faea5973bbfece33a3a2ca292&upsid=92486b4faea5973bbfece33a3a2ca292");//特卖频道
//define("INDEX_URL","http://www.tmall.com/?ali_trackid=2:".ALIMAMA_PID.":1364258757_3k5_343937185");//天猫商城频道
define("TONGJI",&#39;<p style="display:none"><script language="javascript" type="text/javascript" src="http://js.users.51.la/15249102.js"></script></p><p align="center"><a href="http://www.ibtf.net">爱美丽女装</a></p>&#39;);
?>

3.cache.inc.php

<?php
class Cache {
   /**
    * $dir : 缓存文件存放目录
    * $lifetime : 缓存文件有效期,单位为秒
    * $cacheid : 缓存文件路径,包含文件名
    * $ext : 缓存文件扩展名(可以不用),这里使用是为了查看文件
    * $gz : 文件压缩 默认为 0 关闭 1 gzcompress 2 gzip 输出 3 gzcompress 和 gzip
   */
   private $dir;
   private $lifetime;
   private $cacheid;
   private $ext;
   /**
    * 析构函数,检查缓存目录是否有效,默认赋值
   */
   function __construct($dir=&#39;cache/&#39;,$lifetime=1800) {
       if ($this->dir_isvalid($dir)) {
           $this->dir = $dir;
           $this->lifetime = $lifetime;
           $this->ext = &#39;.c&#39;;
           $this->gz = 1;
           $this->auto_clear =0; //是否开始自动清理过期缓存
           $this->cacheid = $this->getcacheid();
       }
   }
   /**
    * 检查缓存是否有效
   */
   private function isvalid() {
       if (!file_exists($this->cacheid)) return false;
       if (!(@$mtime = filemtime($this->cacheid))) return false;
       if (mktime() - $mtime > $this->lifetime) return false;
       return true;
   }
   /**
    * 写入缓存
   */
   public function write($content=&#39;&#39;) {     
       if(!$content){
       $content = ob_get_contents();
       ob_end_flush();}
        
       if($this->gz==1 || $this->gz==3){$content =function_exists(&#39;gzcompress&#39;)?gzcompress($content):$content;}//压缩
       if(function_exists(&#39;fopen&#39;)){
        $fp = fopen($this->cacheid, "w+");
 
        if (flock($fp, LOCK_EX)) { // 进行排它型锁定
            fwrite($fp, $content);
            flock($fp, LOCK_UN); // 释放锁定
        } else {
            $this->error(&#39;写入缓存失败!请检查目录权限,或此文件已被锁定!&#39;);
        }
        fclose($fp);
       }else{
           try {
           file_put_contents($this->cacheid,$content);
           }
           catch (Exception $e) {
               $this->error(&#39;写入缓存失败!请检查目录权限!&#39;);
           }
        }
   }
   /**
    * 加载缓存
    * exit() 载入缓存后终止原页面程序的执行,缓存无效则运行原页面程序生成缓存
    * ob_start() 开启浏览器缓存用于在页面结尾处取得页面内容
   */
   public function load() {
       if ($this->isvalid()) {
           echo "<span style=&#39;display:none;&#39;>This is Cache.</span> ";
           $content=file_get_contents($this->cacheid);
           if($this->gz==1 || $this->gz==3){$content=function_exists(gzuncompress)?@gzuncompress($content):$content;}//解压缩
            
           if($this->gz==2 || $this->gz==3){
               if(extension_loaded(&#39;zlib&#39;)){ob_start(&#39;ob_gzhandler&#39;);}else{ob_start();}
           }
           echo $content;
           ob_end_flush();
           if($this->auto_clear)$this->clean(&#39;&#39;,1);//自动清理缓存
           exit();
       }
       else if($this->gz==2 || $this->gz==3){
           if(extension_loaded(&#39;zlib&#39;)){ob_start(&#39;ob_gzhandler&#39;);}else{ob_start();}
       }else {
            ob_start();
       }
        
   }
   /**
    * 清除缓存
   */
   public function clean($path=&#39;&#39;,$time=&#39;0&#39;) {
       try {
           if(!$path)$path=$this->dir;
           //unlink($this->cacheid);
           $file= $this ->getfilepath($path,$time);
           if($file){
            foreach($file as $v){
                $this ->remove_directory($v,$time);
            }}
       }
       catch (Exception $e) {
           $this->error(&#39;清除缓存文件失败!请检查目录权限!&#39;);
       }
   }
   //获取目录下文件
    public function getfilepath($path,$time){
        $allfiles=scandir($path);
        foreach($allfiles as $key => $filename)
        {
            if(in_array($filename,array(&#39;.&#39;,&#39;..&#39;)))continue;
            $result[$filename] =$path. $filename;
            if($time && $this->auto_clear && !is_dir($result[$filename])){
                if (mktime() - filemtime($result[$filename]) <= $this->lifetime)unset($result[$filename]);
            }
        }
        return $result;
    }   
    //删除空目录及文件
    public function remove_directory($dir,$time) {
      foreach(glob($dir) as $fn) { 
            if(!$time)echo " removing $fn<br>\n";
            if (!is_writable($fn))@chmod($fn, 0777);
            if(is_dir($fn)){@rmdir($fn);}else{@unlink($fn);}
       } 
    }
    
   /**
    * 取得缓存文件路径
   */
   private function getcacheid() {
       return $this->dir.md5($this->geturl()).$this->ext;
   }
   /**
    * 检查目录是否存在或是否可创建
    */
   private function dir_isvalid($dir) {
       if (is_dir($dir)) return true;
       try {
           mkdir($dir,0777);
       }
       catch (Exception $e) {
             $this->error(&#39;所设定缓存目录不存在并且创建失败!请检查目录权限!&#39;);
             return false;            
       }
       return true;
   }
   /**
    * 取得当前页面完整url
   */
   private function geturl() {
       $url = &#39;&#39;;
       if (isset($_SERVER[&#39;REQUEST_URI&#39;])) {
           $url = $_SERVER[&#39;REQUEST_URI&#39;];
       }
       else {
           $url = $_SERVER[&#39;Php_SELF&#39;];
           $url .= empty($_SERVER[&#39;QUERY_STRING&#39;])?&#39;&#39;:&#39;?&#39;.$_SERVER[&#39;QUERY_STRING&#39;];
       }
       return $url;
   }
   /**
    * 输出错误信息
   */
   private function error($str) {
       echo &#39;<p style="color:red;">&#39;.$str.&#39;</p>&#39;;
   }
}
?>
<?php
/*
  1.此版本为Php5版本,如需要请自行参考修改(比较容易啦,不要那么懒嘛,呵呵!).
  2.此版本为utf-8编码,如果网站采用其它编码请自行转换,Windows系统用记事本打开另存为,选择相应编码即可(一般ANSI),Linux下请使用相应编辑软件或iconv命令行.
  3.拷贝粘贴的就不用管上面第2条了.
* 关于缓存的一点感想:
* 动态缓存和静态缓存的根本差别在于其是自动的,用户访问页面过程就是生成缓存、浏览缓存、更新缓存的过程,无需人工操作干预.
* 静态缓存指的就是生成静态页面,相关操作一般是在网站后台完成,需人工操作(也就是手动生成).
*/
 
/*
* 使用方法举例
------------------------------------Demo1-------------------------------------------
 
   require_once(&#39;cache.inc.php&#39;);
   $cachedir = &#39;./Cache/&#39;; //设定缓存目录
   $cache = new Cache($cachedir,10); //省略参数即采用缺省设置, $cache = new Cache($cachedir);
   if ($_GET[&#39;cacheact&#39;] != &#39;rewrite&#39;) //此处为一技巧,通过xx.Php?cacheact=rewrite更新缓存,以此类推,还可以设定一些其它操作
       $cache->load(); //装载缓存,缓存有效则不执行以下页面代码
   //页面代码开始
   echo date(&#39;H:i:s jS F&#39;);
   //页面代码结束
   $cache->write(); //首次运行或缓存过期,生成缓存
 
------------------------------------Demo2-------------------------------------------
 
   require_once(&#39;cache.inc.php&#39;);
   $cachedir = &#39;./Cache/&#39;; //设定缓存目录
   $cache = new Cache($cachedir,10); //省略参数即采用缺省设置, $cache = new Cache($cachedir);
   if ($_GET[&#39;cacheact&#39;] != &#39;rewrite&#39;) //此处为一技巧,通过xx.Php?cacheact=rewrite更新缓存,以此类推,还可以设定一些其它操作
       $cache->load(); //装载缓存,缓存有效则不执行以下页面代码
   //页面代码开始
   $content = date(&#39;H:i:s jS F&#39;);
   echo $content;
   //页面代码结束
   $cache->write($content); //首次运行或缓存过期,生成缓存
 
------------------------------------Demo3-------------------------------------------
 
   require_once(&#39;cache.inc.php&#39;);
   define(&#39;CACHEENABLE&#39;,true);
    
   if (CACHEENABLE) {
       $cachedir = &#39;./Cache/&#39;; //设定缓存目录
       $cache = new Cache($cachedir,10); //省略参数即采用缺省设置, $cache = new Cache($cachedir);
       if ($_GET[&#39;cacheact&#39;] != &#39;rewrite&#39;) //此处为一技巧,通过xx.Php?cacheact=rewrite更新缓存,以此类推,还可以设定一些其它操作
           $cache->load(); //装载缓存,缓存有效则不执行以下页面代码    
   }
   //页面代码开始
   $content = date(&#39;H:i:s jS F&#39;);
   echo $content;
   //页面代码结束
   if (CACHEENABLE)
       $cache->write($content); //首次运行或缓存过期,生成缓存
*/
?>
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구