php实现读取和写入tab分割的文件


Posted in PHP onJune 01, 2015

本文实例讲述了php实现读取和写入tab分割的文件。分享给大家供大家参考。具体分析如下:

这段php代码实现读取和写入tab分割的文件,包含两个独立的函数,一个读,一个写,例如cvs文件等

//
// save an array as tab seperated text file
//
function write_tabbed_file($filepath, $array, $save_keys=false){
  $content = '';
  reset($array);
  while(list($key, $val) = each($array)){
    // replace tabs in keys and values to [space]
    $key = str_replace("\t", " ", $key);
    $val = str_replace("\t", " ", $val);
    if ($save_keys){ $content .= $key."\t"; }
    // create line:
    $content .= (is_array($val)) ? implode("\t", $val) : $val;
    $content .= "\n";
  }
  if (file_exists($filepath) && !is_writeable($filepath)){ 
    return false;
  }
  if ($fp = fopen($filepath, 'w+')){
    fwrite($fp, $content);
    fclose($fp);
  }
  else { return false; }
  return true;
}
//
// load a tab seperated text file as array
//
function load_tabbed_file($filepath, $load_keys=false){
  $array = array();
  if (!file_exists($filepath)){ return $array; }
  $content = file($filepath);
  for ($x=0; $x < count($content); $x++){
    if (trim($content[$x]) != ''){
      $line = explode("\t", trim($content[$x]));
      if ($load_keys){
        $key = array_shift($line);
        $array[$key] = $line;
      }
      else { $array[] = $line; }
    }
  }
  return $array;
}
/*
** Example usage:
*/
$array = array(
  'line1' => array('data-1-1', 'data-1-2', 'data-1-3'),
  'line2' => array('data-2-1', 'data-2-2', 'data-2-3'),
  'line3' => array('data-3-1', 'data-3-2', 'data-3-3'),
  'line4' => 'foobar',
  'line5' => 'hello world'
);
// save the array to the data.txt file:
write_tabbed_file('data.txt', $array, true);
/* the data.txt content looks like this:
line1 data-1-1 data-1-2 data-1-3
line2 data-2-1 data-2-2 data-2-3
line3 data-3-1 data-3-2 data-3-3
line4 foobar
line5 hello world
*/
// load the saved array:
$reloaded_array = load_tabbed_file('data.txt',true);
print_r($reloaded_array);
// returns the array from above

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
一个颜色轮换的简单例子
Oct 09 PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
destoon各类调用汇总
Jun 20 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
PHP生成图表pChart的示例解析
Jul 31 PHP
php实现简易计算器
Aug 28 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 PHP
php从文件夹随机读取文件的方法
Jun 01 #PHP
php计算整个目录大小的方法
Jun 01 #PHP
php获取系统变量方法小结
May 29 #PHP
typecho插件编写教程(六):调用接口
May 28 #PHP
PHP cURL初始化和执行方法入门级代码
May 28 #PHP
php支持中文字符串分割的函数
May 28 #PHP
typecho插件编写教程(五):核心代码
May 28 #PHP
You might like
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Backbone.js中的集合详解
2015/01/14 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python sqlite3事务处理方法实例分析
2017/06/19 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
在Django中实现添加user到group并查看
2019/11/18 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
python 实现波浪滤镜特效
2020/12/02 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
英文版区域经理求职信
2013/10/23 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
励志演讲稿500字
2014/08/21 职场文书
产品委托授权书范本
2014/09/16 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
初中班主任心得体会
2016/01/07 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
python解析json数据
2022/04/29 Python
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android