-
<?php require_once('./jsonxml.php'); require_once('./db.php'); require_once('./cachetime.php'); $page = isset($_GET['page']) ? $_GET['page'] : 1; $pageSize = isset($_GET['pagesize']) ? $_GET['pagesize'] : 6; if(!is_numeric($page)||!is_numeric($pageSize)){ return Response::show(401,'数据不合法');} $offset = ($page - 1) * $pageSize; $sql = "select * from video where status = 1 order by orderby desc limit ".$offset.",".$pageSize; //4-4 读取缓存方式开发首页接口 $cache = new File();$videos = array(); if(!$videos = $cache->cacheData('index_yjp_cache'.$page.'-'.$pageSize)){ echo 1;exit;//如果缓存失效输出1 try{$connect = Db::getInstance()->connect(); }catch(Exception $e){ return Response::show(403,'数据库链接失败');} $result = mysql_query($sql,$connect); $videos = array(); while ($video = mysql_fetch_assoc($result)){$videos[] = $video;} if($videos){$cache->cacheData('index_yjp_cache'.$page.'-'.$pageSize,$videos,1200);}} if($videos){return Response::show(200,'首页数据获取成功',$videos); }else{return Response::show(400,'失败',$videos);}查看全部
-
<?php class File{ //定义一个默认的路径 private $_dir; //定义一个文件名后缀的常量 const EXT = '.txt'; public function __construct() { $this->_dir = dirname(__FILE__).'/files/';//缓存的路径默认/files/ } // @param string $cacheTime 缓存失效时间[默认为0,不传代表永久] public function cacheData($key,$value = '',$cacheTime=0){ $filename = $this->_dir.$key.self::EXT; //将value值写入缓存 if($value !== ''){ //删除缓存 if(is_null($value)){ return @unlink($filename);//unlink删除文件,@忽略警告 } //如果目录不存在就创建目录,首先要获取这个目录 $dir = dirname($filename); if (!is_dir($dir)){ mkdir($dir,0777); } $cacheTime = sprintf('%011d',$cacheTime); return file_put_contents($filename, $cacheTime.json_encode($value)); } //获取缓存 if(!is_file($filename)){return FALSE;} $contents = file_get_contents($filename); $cacheTime = (int)substr($contents,0,11); $value = substr($contents,11); if($cacheTime !=0 && ($cacheTime + fileatime($filename)<time())){ unlink($filename);//缓存失效删除文件 return FALSE; } return json_decode($value,true); } } $file = new File(); //缓存失效 echo $file->cacheData('yjp');查看全部
-
<?php class File{ //定义一个默认的路径 private $_dir; //定义一个文件名后缀的常量 const EXT = '.txt'; public function __construct() { $this->_dir = dirname(__FILE__).'/files/';//缓存的路径默认/files/ } // @param string $cacheTime 缓存失效时间[默认为0,不传代表永久] public function cacheData($key,$value = '',$cacheTime=0){ $filename = $this->_dir.$key.self::EXT; //将value值写入缓存 if($value !== ''){ //删除缓存 if(is_null($value)){ return @unlink($filename);//unlink删除文件,@忽略警告 } //如果目录不存在就创建目录,首先要获取这个目录 $dir = dirname($filename); if (!is_dir($dir)){ mkdir($dir,0777); } $cacheTime = sprintf('%011d',$cacheTime); return file_put_contents($filename, $cacheTime.json_encode($value)); } //获取缓存 if(!is_file($filename)){return FALSE;} $contents = file_get_contents($filename); $cacheTime = (int)substr($contents,0,11); $value = substr($contents,11); if($cacheTime + fileatime($filename)<time()){ unlink($filename);//缓存失效删除文件 return FALSE; } return json_decode($value,true); } } $file = new File(); //缓存失效 echo $file->cacheData('yjp');查看全部
-
cachetime.php <?php class File{ //定义一个默认的路径 private $_dir; //定义一个文件名后缀的常量 const EXT = '.txt'; public function __construct() { //获取文件的当前目录,再放到该目录下的files文件夹中,然后赋给$_dir $this->_dir = dirname(__FILE__).'/files/';//缓存的路径默认/files/ } // @param string $cacheTime 缓存失效时间[默认为0,不传代表永久] public function cacheData($key,$value = '',$cacheTime=0){ //拼装成一个文件:默认目录、文件名、文件名后缀 $filename = $this->_dir.$key.self::EXT; //将value值写入缓存 if($value !== ''){ //删除缓存 if(is_null($value)){ return @unlink($filename);//unlink删除文件,@忽略警告 } //如果目录不存在就创建目录,首先要获取这个目录 $dir = dirname($filename); if (!is_dir($dir)){ mkdir($dir,0777); } $cacheTime = sprintf('%011d',$cacheTime); return file_put_contents($filename, $cacheTime.json_encode($value)); } //获取缓存 if(!is_file($filename)){return FALSE;} $contents = file_get_contents($filename); $cacheTime = (int)substr($contents,0,11); $value = substr($contents,11); echo $value;exit; return json_decode(file_get_contents($filename),true); } } $file = new File(); //获取缓存 $file->cacheData('yjp');查看全部
-
cachetime.php <?php class File{ //定义一个默认的路径 private $_dir; //定义一个文件名后缀的常量 const EXT = '.txt'; public function __construct() { //获取文件的当前目录,再放到该目录下的files文件夹中,然后赋给$_dir $this->_dir = dirname(__FILE__).'/files/';//缓存的路径默认/files/ } // @param string $cacheTime 缓存失效时间[默认为0,不传代表永久] public function cacheData($key,$value = '',$cacheTime=0){ //拼装成一个文件:默认目录、文件名、文件名后缀 $filename = $this->_dir.$key.self::EXT; //将value值写入缓存 if($value !== ''){ //删除缓存 if(is_null($value)){ return @unlink($filename);//unlink删除文件,@忽略警告 } //如果目录不存在就创建目录,首先要获取这个目录 $dir = dirname($filename); if (!is_dir($dir)){ mkdir($dir,0777); } $cacheTime = sprintf('%011d',$cacheTime); return file_put_contents($filename, $cacheTime.json_encode($value)); } //获取缓存 if(!is_file($filename)){ return FALSE; } $contents = file_get_contents($filename); $cacheTime = (int)substr($contents,0,11); echo $cacheTime;exit; return json_decode(file_get_contents($filename),true); } } $file = new File(); //获取缓存 $file->cacheData('yjp');查看全部
-
cachetime.php <?php class File{ //定义一个默认的路径 private $_dir; //定义一个文件名后缀的常量 const EXT = '.txt'; public function __construct() { //获取文件的当前目录,再放到该目录下的files文件夹中,然后赋给$_dir $this->_dir = dirname(__FILE__).'/files/';//缓存的路径默认/files/ } // @param string $cacheTime 缓存失效时间[默认为0,不传代表永久] public function cacheData($key,$value = '',$cacheTime=0){ //拼装成一个文件:默认目录、文件名、文件名后缀 $filename = $this->_dir.$key.self::EXT; //将value值写入缓存 if($value !== ''){ //删除缓存 if(is_null($value)){ return @unlink($filename);//unlink删除文件,@忽略警告 } //如果目录不存在就创建目录,首先要获取这个目录 $dir = dirname($filename); if (!is_dir($dir)){ mkdir($dir,0777); } $cacheTime = sprintf('%011d',$cacheTime); return file_put_contents($filename, $cacheTime.json_encode($value)); } //获取缓存 if(!is_file($filename)){ return FALSE; }else{ return json_decode(file_get_contents($filename),true); } } } $file = new File(); //设置缓存 $file->cacheData('yjp','pandadoge',180);查看全部
-
cachetime.php <?php //4-4 读取缓存方式开发首页接口 class File{ private $_dir; const EXT = '.txt'; public function __construct(){ $this->_dir = dirname(__FILE__).'/files/';} //$cacheTime 缓存失效时间[默认为0,不传代表永久] public function cacheData($key,$value = '',$cacheTime=0){ $filename = $this->_dir.$key.self::EXT; if ($value !== ''){ //删除缓存 if (is_null($value)){ return @unlink($filename);} //如果目录不存在就创建目录,首先要获取这个目录 $dir = dirname($filename); if (!is_dir($dir)){ mkdir($dir,0777);} //设置缓存失效时间原理:把$cacheTime和$value一并存入到$key里来,然后在获取的时候,把$cacheTime和 $value都获取出来,做个截取把$cacheTime截取出来,$cacheTime的时间+$key的时间和当前时间做对比。>:缓存没失效;<:缓存失效。 //$cacheTime传的默认单位是s,有可能10s,100s...长度不一定(10s两位,100s三位)。所以把缓存失效时间固定一个长度。比如11位,不满11位前面补0。截取的时候根据位数来做处理。 $cacheTime = sprintf('%011d',$cacheTime); //把$cacheTime和$value[只能是string类型]拼装写入到文件里去。返回值:数据的字节数[成功];false[失败] return file_put_contents($filename, $cacheTime.json_encode($value)); } //获取缓存 if(!is_file($filename)){ return FALSE; }else{ return json_decode(file_get_contents($filename),true); } } }查看全部
-
设置缓存的大致流程图查看全部
-
4-4 读取缓存方式开发首页接口 --学习要点 1、掌握静态缓存如何设置缓存失效时间 2、如何设置缓存 (1)静态缓存(2)memcache缓存(3)redis缓存查看全部
-
list.php <?php //4-2 首页APP接口开发之方案一 // http://app.com/list.php?page=1&pagesize=12 require_once('./jsonxml.php'); require_once('./db.php'); $page = isset($_GET['page']) ? $_GET['page'] : 1; $pageSize = isset($_GET['pagesize']) ? $_GET['pagesize'] : 6; if (!is_numeric($page)||!is_numeric($pageSize)) { return Response::show(401,'数据不合法'); } $offset = ($page - 1) * $pageSize; $sql = "select * from video where status = 1 order by orderby desc limit ".$offset.",".$pageSize; try{ $connect = Db::getInstance()->connect(); }catch(Exception $e) { //$e->getMessage();//做调试用,不建议把数据放到这里来 return Response::show(403,'数据库链接失败'); } $result = mysql_query($sql,$connect); $videos = array(); while ($video = mysql_fetch_assoc($result)) { $videos[] = $video; } //转换成接口数据 if($videos){ return Response::show(200,'首页数据获取成功',$videos); } else{ return Response::show(400,'首页数据获取失败',$videos); } db.php if(!self::$_connectSource){ throw new Exception('mysql connect error '.mysql_error()); }查看全部
-
<?php //4-2 首页APP接口开发之方案一 // http://app.com/list.php?page=1&pagesize=12 require_once('./jsonxml.php'); $page = isset($_GET['page']) ? $_GET['page'] : 1; $pageSize = isset($_GET['pagesize']) ? $_GET['pagesize'] : 6; if (!is_numeric($page)||!is_numeric($pageSize)) { return Response::show(401,'数据不合法'); } $offset = ($page - 1) * $pageSize; $sql = "select * from video where status = 1 order by orderby desc limit ".$offset.",".$pageSize; echo $sql;查看全部
-
video表查看全部
-
http://localhost/mooc/app/list.php?format=xml&page=xxx <root> <code>401</code> <message>数据不合法</message> <data/> </root>查看全部
-
<?php //4-2 首页APP接口开发之方案一 // http://app.com/list.php?page=1&pagesize=12 require_once('./jsonxml.php'); $page = isset($_GET['page']) ? $_GET['page'] : 1; $pageSize = isset($_GET['pagesize']) ? $_GET['pagesize'] : 1; if (!is_numeric($page)||!is_numeric($pageSize)) { return Response::show(401,'数据不合法'); }查看全部
-
接口文档 --返回数据查看全部
举报
0/150
提交
取消