文档章节

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

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2015/10/16 10:00
字数 554
阅读 431
收藏 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
郑州
程序员
私信 提问
小蚂蚁学习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
2018/07/05
0
0
小蚂蚁学习APP接口开发(8)—— APP接口实例——服务器定时缓存的方式开发接口

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

嗜学如命的小蚂蚁
2015/10/20
229
0
Java后端程序员1年工作经验和技术总结

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

gongxifacai_believe
2017/10/05
0
0
注册中心 Eureka 源码解析 —— 应用实例注册发现(六)之全量获取

摘要: 原创出处 http://www.iocoder.cn/Eureka/instance-registry-fetch-all/ 「芋道源码」欢迎转载,保留摘要,谢谢! 本文主要基于 Eureka 1.8.X 版本 1. 概述 2. Eureka-Client 发起全量获...

Java公众号_芋道源码_每日更新
2018/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 在package.json中的scripts里添......

Chason-洪
9分钟前
0
0
Linux系统快速查找文件的技巧

Linux常用命令中,有些命令可以帮助我们查找二进制文件,帮助手册或源文件的位置,也有的命令可以帮助我们查找磁盘上的任意文件,今天我们就来看看这些命令如何使用。 which which命令会在P...

Linux就该这么学
11分钟前
0
0
dotConnect for Oracle入门指南(八):通过OracleCommand类使用存储过程

【下载dotConnect for Oracle最新版本】 dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的...

电池盒
12分钟前
0
0
JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript 之间转换

摘要: 深入JS系列15。 原文:深入类和继承内部原理 + Babel和TypeScript 之间转换 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 这是专门探索 JavaScript 及其所构建的组件的系列...

Fundebug
22分钟前
0
0
js 引用传值问题踩坑

先自测一下,答案在最下边。 <html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){$("button......

S三少S
33分钟前
12
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部