文档章节

小蚂蚁学习APP接口开发(4)—— 静态缓存的操作方法和定时任务

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/10/16 10:00
字数 554
阅读 425
收藏 2

静态缓存的操作

    这个之前写的页面静态化有异曲同工之妙,无非就是获取数据、写入数据、读出数据则几个动作。例子中写了一个方法,通过对参数的判断,可以对静态缓存文件进行生成、修改和删除,比较容易操作。

<?php

class File{

	//缓存文件的路径
	private $_dir;

	//缓存文件的默认路径
	const EXT='.txt';

	//构造方法生成目录
	function __construct(){
		$this->_dir	=	dirname(__FILE__).'/files/';
		if(!is_dir($this->_dir)){
			mkdir($this->_dir,0777);	
		}
	}

	/*************************
	*
	*	缓存文件的生成,修改,删除
	*	$value有值,写入。无值,读出。为null,删除
	*	@param 	 string		$key 	文件名 	
	*	@param 	 mixed		$value 	缓存的数据	
	*	@param 	 string		$path 	缓存文件的路径
	*	return 	 mixed 		返回值为布尔值,字符串,整型
	*
	*******************/
	public function cacheData($key,$value='',$path=''){
		
		//缓存文件的全路径
		$filename	=	$this->_dir.$path.$key.self::EXT;

		//如果value为null,这删除这个静态缓存
		if(is_null($value)){
			return @unlink($filename);

		}
		

		//如果$value不等于空,说明是写入操作
		if($value != ''){
			//判断提交的path是否存在
			$dir 	=	dirname($filename);
			if(!is_dir($dir)){
				mkdir($dir,0777);
			}
			//经数据json化,保存到文件

			return file_put_contents($filename,json_encode($value));
		}elseif($value == ''){    //说明是读取操作
			if(is_file($filename)){
				return json_decode(file_get_contents($filename),true);
			}else{
				return false;
			}
		}

	}
}

	$file =	new File();
	$str=$file->cacheData('myblog','学php的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog');
	if($str){
		if(is_bool($str)){
			echo 'success';
		}else{
			echo $str;
		}
	}else{
		echo 'error';
	}

?>

    主要判断第二个参数$value,如果有值,则写入;如果无值,就读取;如果是null,就删除;

在linux系统设置定时任务

命令:    1.    crontab -e    编辑某个用户的cron任务

              2.    crontab -l    列出某个用户cron服务的详细内容

              3.    crontab -r    删除定时任务

定时任务的格式

分            时            日        月            星期            命令

    *            *            *            *            *  

0-59        0-23        1-31    1-12        0-6            command

注:* 代表取值范围内的数字        / 代表 每 ,比如每分钟

例如:

    */1    *    *    *    *        php        /data/www/index.php        每分钟执行index.php脚本

    50    7    *    *    *        /sbin/service    sshd    start                每天7:50分开启ssh服务

© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 137
博文 161
码字总数 100864
作品 0
郑州
程序员
小蚂蚁学习APP接口开发(6)—— APP接口实例——首页数据接口的案例实现

读取数据的三种方式 读取数据库方式开发首页接口 从数据库获取数据——》封装——》生成接口数 优点:数据时效性比较高的系统 2. 读取缓存方式开发首页接口(用途非常广) 从数据库获取信息—...

嗜学如命的小蚂蚁
2015/10/18
805
0
用PHP写APP接口,现在我也在学习中。。。

现在app这么火,作为一个phper,应该知道如何写app的接口,下面做一个讲解。Index: 第1章 APP接口简介 - 第2章 封装通信接口方法 2-1 JSON方式封装通信接口 (14:39) 2-2 PHP生成XML数据 (12:...

YSail
07/05
0
0
Java后端程序员1年工作经验和技术总结

本文转载自:Java后端程序员1年工作经验和技术总结 1.引言   毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些...

gongxifacai_believe
2017/10/05
0
0
小蚂蚁学习APP接口开发(8)—— APP接口实例——服务器定时缓存的方式开发接口

基本的思路:服务器只负责定时更新缓存。请求进来只需要读取缓存就可以了。 服务器定时执行生成缓存的代码: <?php /** crontab 定时生成缓存文件 /usr/bin/php /app/crontab.php* 学php的小...

嗜学如命的小蚂蚁
2015/10/20
229
0
taobao-pamirs-schedule-2.0源码分析——类设计

使用方法 首先学习一个开源项目,一定要先学习该开源项目的使用方法。该项目的使用方法本文不再详述。请参考博文: http://pinsir.iteye.com/blog/882275 http://pinsir.iteye.com/blog/882...

杨武兵
2016/03/02
956
8

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 使用parent方式引用时 获取值属性方式默认@

采用官网提供的 引入依赖时,application.properties中的值变量,无法通过${}获取,这是由于Spring Boot 已经将字符方式调整为 <resource.delimiter>@</resource.delimiter>。故如果在,工程中...

翱翔fly
28分钟前
1
0
HTTPS证书验证流程及SSL证书生成步骤【附nginx开启https配置】

------------------------------------------------------------ HTTPS证书验证流程(极简化版) 1.客户端向服务端请求证书(server.crt) 2.服务端下发证书(server.crt) 3.客户端用预制的...

xiaomin0322
29分钟前
1
0
预编译sql语句和参数化sql能有效防止——sql注入攻击——

预编译和参数化处理sql原理类似: 参数化处理sql 是将参数进行了字符串化处理,把参数中的单引号,井号#,等都做了转义处理,进而在执行sql语句时不会被当做sql中的定界符和指定符来执行。 ...

fang_faye
29分钟前
1
0
springboot最全配置解释

​​​​​​​# ----------------------------------------# 核心属性# ----------------------------------------# 文件编码banner.charset= UTF-8# 文件位置banner.locati...

废柴大叔
31分钟前
85
1
(大致了解下)从单机到2000万QPS: 知乎Redis平台发展与演进之路

导读:知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能。本文作者是是该系统的负责人,文...

Ocean_K
38分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部