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 相关文章推荐
PHP动态图像的创建
Oct 09 PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
php替换字符串中间字符为省略号的方法
May 04 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
php防止sql注入的方法详解
Feb 20 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
php设计模式之策略模式应用案例详解
Jun 17 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 flush()与ob_flush()的区别详解
2013/06/03 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
centos系统升级python 2.7.3
2014/07/03 Python
python修改操作系统时间的方法
2015/05/18 Python
python操作列表的函数使用代码详解
2017/12/28 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
python调试神器PySnooper的使用
2019/07/03 Python
最小二乘法及其python实现详解
2020/02/24 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
python基础之//、/与%的区别详解
2022/06/10 Python