设为首页 收藏本站
查看: 542|回复: 0

[经验分享] PHP读写文件的两个方法(CodeIgniter框架)

[复制链接]

尚未签到

发表于 2015-8-30 11:20:44 | 显示全部楼层 |阅读模式
     以下为PHP使用CodeIgniter框架对文件的读写操作
   有什么改善的地方还希望各位提出!
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Cache file
*@param  the dir for save the cache file
*@param cache life time    (minutes)
*@param string the cache file path
*/
class Cache {

  var $time  = 10;
  /**
   * establishment the cache file
   *
   * @param  string $data    cache data
   * @param string $name    cache name
   * @param  int  $life_time     cache  lifetime
   */
function set_cache($data = null, $name = null, $life_time = null)
{
   /*set cache life time */
     $this->time    = $life_time;

     /* set cache path and name*/
      $cache_file   = BASEPATH.'cache/'. md5($name).'ngcache'; //对文件名进行加密

      /* check the cache is exists */
       /* Circulation write data  */
     if(count($data) > 0 && $data != null && $data != "")
     {
       if(!file_exists($cache_file))
       {
                 $fp = @fopen( $cache_file,"w");
                 @fclose($fp);
       }
       /* openg the exists cache file */
      $fp = @fopen($cache_file, 'w');
      @flock($fp, LOCK_EX);
       foreach ($data as $ng)
       {
        $str   = $ng['M_WORD_STRING'];
        $str           .= "\r\n";
       @fwrite($fp, $str);
       }
       return 'action';  //有数据返回字符串action,在外面判断该文件有数据存在,并且是否写入成功
     }
     else
     {
       return true; // 没有数据返回True,在外面判断该文件为空,并且是否写入成功
     }
}

/**
  * Get STRING from the cache file
  *
  * @param $name    cache name  
  * @return   bool
  */
function get_cache_data($name = null)
{
   $cache_file = BASEPATH.'cache/'. md5($name).'ngcache';

       /* the time is which the cache file was establishmented  */
  $cache_edit_time = @filemtime($cache_file);  //获取创建该文件的时间
  $current_time  = time();    //得到当前系统时间
  
  /* judge the file is exist*/
   if(file_exists($cache_file))
             {
              /* computation time difference  */
    $diff_time = $current_time-$cache_edit_time;
    $day  = intval($diff_time/86400);
    $hour  = intval(($diff_time-$day*86400)/3600);
    $minutes = intval(($diff_time-$day*86400-$hour*3600)/60);

     /* cache file is out time , delete the cache file*/  
   if($minutes > $this->time)
   {
    @unlink($cache_file);  //删除文件
    return false; //表明现在该文件不存在,需重新创建
   }
           $fp = @fopen($cache_file, "r");

            if($fp)
          {
           /* take the cache data into array */
                      $this->cachetoarray = @file_get_contents($cache_file);
                      /* Transformation data  */
                      $chars = preg_split('/\r\n/', $this->cachetoarray, -1, PREG_SPLIT_OFFSET_CAPTURE);
                      $cache_arr = $chars;
             @fclose($fp);            
     return $cache_arr; //返回读出的数据
     exit();
           }
   else
   {
    return false; //表示读取失败
   }   
             }
    else
     {
                 return false; //表示该文件不存在,重新创建该文件,
             }

   }
}

  ?>

当读取文件的时候,在程序中调用读取文件方法的时候进行判断,如果失败就调用写文件的方法重新创建该文件。如果成功就继续

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106269-1-1.html 上篇帖子: PHP–Redirect和forward的区别 下篇帖子: [php]php设计模式 Interpreter(解释器模式)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表