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
杏林同学录(四)
Oct 09 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
php中的比较运算符详解
Oct 28 PHP
php 伪静态之IIS篇
Jun 02 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 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
php删除文本文件中重复行的方法
2015/04/28 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
教你php如何实现验证码
2016/01/20 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
学校后勤人员职责
2013/12/27 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
详解Python中*args和**kwargs的使用
2022/04/07 Python