文档章节

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

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/10/16 10:00
字数 554
阅读 427
收藏 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服务

© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 142
博文 161
码字总数 100864
作品 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
小蚂蚁学习APP接口开发(6)—— APP接口实例——首页数据接口的案例实现

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

嗜学如命的小蚂蚁
2015/10/18
805
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
如此牛逼?双11背后的秘密-支付宝app双11最佳实践

近来,FF项目的运营活动越来越多,对于架构设计以及程序研发有了更高的要求,参考国内互联网公司对于营销活动app的设计思路,我们找到了最具有代表性的支付宝双11活动,阐述运营活动类高并发...

丁小晶
2016/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

css hack

浏览器的兼容性一直是个头疼的问题,使用“欺骗”技术可使各个浏览器效果一致,花了些时间整理了各个浏览器的HACK,主要包括IE系列和最新版本的Chrome、Safari、Firefox、 Opera,比较全面的...

kitty1116
31分钟前
1
0
zookeeper脑裂问题

一、为什么zookeeper要部署基数台服务器? 二、zookeeper脑裂(Split-Brain)问题 2.1、什么是脑裂? 2.2、什么原因导致的? 2.2、zookeeper是如何解决的? 一、为什么zookeeper要部署基数台...

tantexian
37分钟前
2
0
Spring事务传播行为详解

前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的...

码代码的小司机
47分钟前
3
0
Android设备通过fastboot刷入TWRP

方法一:通过fastboot刷入TWRP的方式 首先去TWRP官网下载TWRP安装文件https://twrp.me/Devices/ 1.进入bootloader adb reboot bootloader 也可在开机时,同时按住电源键+音量减,进入bootloa...

robslove
52分钟前
1
0
为何译为“东家机”和“宾客机”

学习过虚拟化、云计算的人大概都知道,并且都在自己的电脑上安装KVM,如下图所示: 什么情况?不过是在物理机的Windows 10上安装了VMware;在VMware上安装了Linux CentOS 7操作系统;又在其上...

大别阿郎
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部