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 远程关机实现代码
Nov 10 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
php连接mssql的一些相关经验及注意事项
Feb 05 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
全面了解PHP中的全局变量
Jun 17 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 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
WINXP下apache+php4+mysql
2006/11/25 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
vue移动端实现下拉刷新
2018/04/22 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
在Django同1个页面中的多表单处理详解
2017/01/25 Python
python生成excel的实例代码
2017/11/08 Python
查看Django和flask版本的方法
2018/05/14 Python
Django中间件实现拦截器的方法
2018/06/01 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
水毁工程实施方案
2014/04/01 职场文书
档案管理员岗位职责
2015/02/12 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
防汛通知
2015/04/25 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
解析目标检测之IoU
2021/06/26 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript