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生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
php常见的魔术方法详解
Dec 25 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
详解php比较操作符的安全问题
Dec 03 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
asp.net和php的区别点总结
Oct 10 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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计算近1年的所有月份
2017/03/13 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
详解JS函数防抖
2020/06/05 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
python删除字符串中指定字符的方法
2018/08/13 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
python super用法及原理详解
2020/01/20 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
造价工程师个人求职信
2013/09/21 职场文书
动物学专业毕业生求职信
2013/10/11 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
铁人观后感
2015/06/16 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
代码复现python目标检测yolo3详解预测
2022/05/06 Python
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript