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 相关文章推荐
example1.php
Oct 09 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
May 23 PHP
PHP防CC攻击实现代码
Dec 29 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
PHP安全上传图片的方法
Mar 21 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
php apache开启跨域模式过程详解
Jul 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备份MYSQL数据的多种方法
2014/01/15 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
微信小程序云开发之使用云数据库
2019/05/17 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
解释i节点在文件系统中的作用
2013/11/26 面试题
工厂总经理岗位职责
2014/02/07 职场文书
导师就业推荐信范文
2014/05/22 职场文书
局火灾防控工作方案
2014/05/25 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
检讨书怎么写
2015/05/07 职场文书
二手房购房意向书
2015/05/09 职场文书
家长意见书
2015/06/04 职场文书
家访教师心得体会
2016/01/23 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL