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
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
php命名空间学习详解
Feb 27 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 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制作静态网站的模板框架(一)
2006/10/09 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
htm调用JS代码
2007/03/15 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
js单词形式的运算符
2014/05/06 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python获取本机所有IP地址的方法
2018/12/26 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
python 图像增强算法实现详解
2021/01/24 Python
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
公司JAVA开发面试题
2015/04/02 面试题
行政助理岗位职责
2013/11/10 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
单位工作证明范文
2014/09/14 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
关于长城的导游词
2015/01/30 职场文书
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技