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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
6个超实用的PHP代码片段
Aug 10 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
Symfony生成二维码的方法
Feb 04 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 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
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
firebug的一个有趣现象介绍
2011/11/30 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python中enumerate函数用法实例分析
2015/05/20 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
品质主管的岗位职责
2013/12/04 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
毕业生面试求职信
2014/06/23 职场文书
拆迁委托协议书
2014/09/15 职场文书
租车协议书范本2014
2014/11/17 职场文书
先进个人申报材料
2014/12/30 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript