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 adodb操作mysql数据库
Mar 19 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 PHP
PHP 实现explort() 功能的详解
Jun 20 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
php里array_work用法实例分析
Jul 13 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 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和MySQL保存和输出图片
2006/10/09 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
php fread函数使用方法总结
2019/05/28 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
JS面向对象编程详解
2016/03/06 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
js实现录音上传功能
2019/11/22 Javascript
python 生成目录树及显示文件大小的代码
2009/07/23 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
银行员工辞职信范文
2014/01/20 职场文书
公司节能减排倡议书
2014/05/14 职场文书
交通违章检讨书
2014/09/21 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
大学生团员个人总结
2015/02/14 职场文书
居委会工作总结2015
2015/05/18 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers