php实现读取和写入tab分割的文件

5年以前  |  阅读数:564 次  |  编程语言:PHP 

本文实例讲述了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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
贪吃蛇
文件下载
获取IMEI
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例