前一篇讲到了如何将资源本地化,这篇博文将讲述如何资源本地化的同时实时更新。

二级页面,文章页面要实时更新其实没有什么必要,只要定时或者稳定间隔时间更新页面就行了。方法有如下几种:

1,利用cookie或者session定时或者间隔时间重新生成页面和文件

2,当生成的文件大小超过一定量(如150M)时,删除文件重新生成。

由于我用的是虚拟空间,以节约成本角度出发我用的是第二种方法。

下面几个方法能达到要求:

public function content(){

//session_start();

$address = ltrim($this->address, '/');

if(file_exists($address))

{//echo $this->address;exit;

/*$session_name = "cache_time_html";

if($_COOKIE[$session_name])

{

$show_data = '';

$grab_caches_time = Cookie::get($session_name);

if((time() - $grab_caches_time) > $this->cache_time_html)

{//echo time() - $grab_caches_time;exit;

$_COOKIE[$session_name] = null;

unset($_COOKIE[$session_name]);

self::creat_html();

}

else

{//echo time() - $grab_caches_time;exit;

$show_data = @file_get_contents(ltrim($this->address, '/'));

print_r($show_data);

exit;

}

}

else

{

Cookie::set($session_name, time());

self::creat_html();

}*/

$show_data = @file_get_contents(ltrim($this->address, '/'));

print_r($show_data);

exit;

}

else

{ //echo 2;exit;

self::creat_html();

}

}

/**

* 生成静态页面

*/

private function creat_html()

{

//echo $this->html_address;exit;

$content = $this->grap->curl_get_content($this->html_address);

if(!$content) $content = @file_get_contents($this->html_address);

if($content)

{

//替换删除内容

$param1 = '/

\s+?友情链接:(.*)/isU';

$param2 = '/

(.*)/isU';

$param3 = '/

(.*)/isU';

$param = array($param1, $param2, $param3);

$this->grap->replace_preg($content, $param);

$replace = array('网站导航', '收藏本站', '[登陆|注册]');

$this->grap->replace_preg($content, $replace, '1', '0');

//保存图片到本地

$image_place = array('');

$replace = array('' => '');

$this->grap->get_image($content, $this->sorce_url, "/public/images", $image_place, $replace);

//保存css到本地

$this->grap->get_css($content, $this->sorce_url, "/public/images");//print_r($content);exit;

//保存js到本地

$this->grap->get_js($content, $this->sorce_url, "/public/images");

//处理页面超链接

self::href_oprate($content);

//生成文件夹

$this->grap->get_file_adress($this->address);

$address = ltrim($this->address, '/');

/*$files = fopen($address, 'w');

fwrite($file, $content);

fclose($file);*/

@file_put_contents($address, $content);

print_r($content);exit;

}

else

{

echo '没有获取到页面内容,请刷新重试!';

}

}

/**

* 处理页面超链接

*

* @param srting $content

*/

private function href_oprate(&$content)

{

$content = str_replace($this->sorce_url, '', $content);

$zx_patton = array(

'',

);

$zx_replace = array(

'',

);

$content = str_replace($zx_patton, $zx_replace, $content);

@preg_match_all("/]*)/i",$content,$match);

$href = $match['1'];

foreach ($href as $key => $val)

{

if(!stristr($val, 'href')) continue;

if(stristr($val, "http://") || stristr($val, "https://") || stristr($val, "/login.html") || stristr($val, "/register.html") || stristr($val, ".php"))

{

$content = str_replace($val, '', $content);

}

if(!stristr($val, "javascript"))

{

$fg = stristr($val, 'href="') ? 'href="' : "href='";

$arr_url = explode($fg, $val);

$arr_url['1'] = trim($arr_url['1']);

if(substr($arr_url['1'], 0, 1) == '"' && substr($arr_url['1'], 0, 1) == "'") continue;

if(substr($arr_url['1'], 0, 1) == '/')

{

if(substr($arr_url['1'], 0, 2) !== '/"' && substr($arr_url['1'], 0, 2) !== "/'")

{

$arr_url['1'] = substr($arr_url['1'], 0, 1) != '/' ? '/html/'.$arr_url['1'] : '/html'.$arr_url['1'] ;

}

$new_url = implode($arr_url, $fg);//echo $val.'||'.$new_url.'


';

$content = str_replace($val, $new_url, $content);

}

}

}//exit;

}

php小偷cookie,php小偷程序新概念之实时更新(二) | 学步园相关推荐

  1. 新概念英语一册二册三册四册(含答案和mp3音频)

    新概念英语一册二册三册四册(含答案和mp3音频) 新概念英语第一册 ·新概念英语第一册Flash版4-3 ·新概念英语第一册Flash版4-4 ·新概念英语第一册Flash版4-2 ·新概念英语第一册 ...

  2. 小程序轮播图实时更新

    关于小程序轮播图实时更新不借助webSocket来实现,为你们提供以下思路 博主就是这样搞得已经实现很好用 1. 关于轮播图后台肯定有维护页面也就是说和后端商量好,如果后台新增.修改.删除了某个轮播图 ...

  3. python新浪api_python调用新浪微博API | 学步园

    前提:在新浪微博应用开发平台成功创建一个应用,并获得可用APP_KEY.APP_SECRET.CALLBACK_URL. 1.下载OAuth2的python版SDK,https://github.co ...

  4. wxpython应用程序对象与顶级窗口_wxPython 基础 | 学步园

    wxPython应用程序的两个主要部分是:应用程序对象和顶级Window对象 应用程序对应通常指wx.App的子类. Window对象通查功能指Frame或者Dialog. 创建wx.App子类 1 ...

  5. dpcm编码 matlab程序,DPCM预测编码的MATLAB原代码: | 学步园

    DPCM预测编码原代码: i1=imread('3.jpg'); i1=rgb2gray(i1); i1=imcrop(i1,[20 20 160 160]); i=double(i1); [m,n] ...

  6. 新概念2-课文名称和知识点

    目录 一.新概念2课文特点 二.新概念2知识点 1.新概念2知识点思维导图 2.简单句的核心 3.简单句的扩展 4.复合句 三.新概念2课文明细 一.新概念2课文特点 1)总计96篇课文,4个单元,每 ...

  7. 新概念英语第一册学习笔记

    新概念英语第一册 21 祈使句 请给我一本书 give me a book please 请递给我一本书 pass me a book pass me:递给 哪一本书 which book? 这一本书 ...

  8. 如何学习新概念英语第四册

    我要想学新概念四册或者是即将学新概念四册的人表示恭喜,因为你们即将踏上英语的最高境界,踏入英语最神圣的殿堂.    新概念四册所有的文章都是选自于某个领域最经典的文章,读这些文章,其实就是在和这些大师 ...

  9. 重磅 | 机器学习大神Bengio最新论文发布,专注RNN优化难题,将在NIPS提出新概念fraternal dropout

    编译 | Troy·Chang.爱心心.reason_W 校对 | reason_W 下个月机器学习领域的顶会Nips就要在大洋彼岸开幕啦,那么这次的Nips又有什么值得关注的亮点呢?Bengio在新 ...

  10. 新概念C语言能力教程练习3答案,新概念C语言教程答案参考(自做)中国电力

    新概念C语言教程答案参考(自做)中国电力 (138页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 39.9 积分 第一篇算法与C程序结构第1单元C语言程 ...

最新文章

  1. Unity 跑酷Demo难题总结
  2. Python自动化运维之函数进阶
  3. 计算机科学经典论文(zz)
  4. 关于Spring Cloud Zuul网管上传文件乱码问题
  5. 在NamedParameterJdbcTemplate中使用like查询
  6. java日期格式精确到分_详解Java日期格式化及其使用例子
  7. 关于在Flask中使用Restful
  8. 你有见过从肚子里抽出来的脂肪吗? | 今日趣图
  9. mapreduce 算法_MapReduce算法–了解数据联接第1部分
  10. python 入门到实践期末考试常出现的考试内容_Python编程入门到实践—列表篇(一)...
  11. Jquery改变窗体大小
  12. 基于Android中实现定时器的3种解决方法
  13. Xcode证书路径和缓存清理路径
  14. MATLAB 绘图函数及绘图辅助
  15. 微分方程的数值解法—四阶龙格库塔(Runge-Kutta)的推导以及C代码实现
  16. 毕业论文页码及目录设置方法
  17. 探究ESP32S【第六天】——接入米家(插曲)
  18. 图像分割之常用损失函数-Focal Loss
  19. 2021四川省赛A,B,D,H,K
  20. OpenGL-聚光灯-spot

热门文章

  1. linux 叫号程序,linux socket编程有关问题,上面是小弟我做的一个简单的模拟银行排队叫号系统...
  2. CodeProject的网站
  3. linux如何导入种子文件格式,Linux下磁力链接种子文件下载
  4. 【非参数统计】概念及方法归纳比较(超适合期末复习)
  5. 珍大户《认知世界的经济学》学习笔记 -- 第17课 影响消费者的因素 -- 色彩、冷暖、秩序
  6. 【干货】跨端体验度量的思考与实现(含直播回放)
  7. 元宇宙NFT商城系统|艺术数字藏品平台源码部署
  8. SPSS Statistics 24 软件安装教程
  9. 直播盒子源码与直播盒子APP如何对接自动发卡平台
  10. E4A直播盒子APP源码搭建教程之——APP源码篇