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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
php错误级别的设置方法
Jun 17 PHP
PHP魔术方法__GET、__SET使用实例
Nov 25 PHP
PHP生成条形图的方法
Dec 10 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
PHP chr()函数讲解
Feb 11 PHP
Laravel实现ORM带条件搜索分页
Oct 24 PHP
PHP强制转化的形式整理
May 22 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模板中拼接字符串的方法
2014/02/14 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
jQuery事件详解
2017/02/23 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
python基础教程之缩进介绍
2014/08/29 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
如何开发安全的AJAX应用
2014/03/26 面试题
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
社区低保工作总结2015
2015/07/23 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书