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

   本文实例讲述了php实现读取和写入tab分割的文件。分享给大家供大家参考。具体分析如下:

  这段php代码实现读取和写入tab分割的文件,包含两个独立的函数,一个读,一个写,例如cvs文件等

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

//
// 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程序设计有所帮助。

时间: 2024-08-03 17:43:23

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

php实现读取和写入tab分割的文件_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

内存不能被读取和写入的问题

内存不能被读取和写入,我想大家一定见过这种类似的问题.最近公司一直出现这种问题: 而且有的时候桌面上的任何图标都是显示不完整,从事件查看器中出现很多莫名的提示错误.这个真的很头疼,为了弄清事件的来源(是否是系统出现问题)每一次都是重新启动.每次重启完成之后,系统就正常啦.但这也不能解决实际问题啊.问题好像就是系统在启动的时候,有些文件没有加载上或者是加载并不完整. 下面我希望和大家分享一下我的所得,有更好的方法大家可以一起去探讨啊!一般情况下出现这种问题有两根方面的原因:一是.硬件即内存方面的问

C#调用Haskell时的“尝试读取或写入受保护的内存”问题

最近一直被C#调用Haskell时的"尝试读取或写入受保护的内存"问题所困扰(详见C#调用haskell遭遇Attempted to read or write protected memory,C#调用haskell时的"尝试读取或写入受保护的内存"问题),而且困在其中,越陷超深,无法自拔,差点弃用C#解决我们面临的问题. 问题是这样的,只要在Haskell代码中对字符串进行操作,在C#调用时就会引发异常: An unhandled exception of ty

hadoop教程(八) map/reduce的读取和写入

write/read 参考<hadoop权威指南>书的63和66页 读取流程 写入流程 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/tools/

c#文件的创建、读取及写入

在c#中运用到操作流时,首先要加入以下两个命名空间 using System.IO; using System.Collections; 我总结了以下几种方式来进行IO操作,很简便,但却很实用 目录的创建 文件的创建 文件读取与写入 文件的按逐行读取 以上代码虽然很简洁,但是在实际操作中使用起来可是很方便的,这只是我自己工作中总结的 ,大家可以去试下,使用它可以用最少的代码实现自己想要的效果.

php有规律大文件的读取与写入

  这几天在做一个东西.研究PHP读取行数较多的文件(大概上百万行).考虑到效率问题.进行了简单的研究.总结如下 第一条.file()函数的效率问题. file()函数的效率很底下 如果是有规律的文件.比如每行一条相应数据.那么尽量不要是用file()函数 可以使用file_get_contents()然后用explode切割.这样效率会快三分之一 举个例子: 文件样式如下: 11111n 22222n 33333n 44444n 55555n .....n nnnnnnnnnnnn 如果用fi

在Python程序中进行文件读取和写入操作的教程

  这篇文章主要介绍了在Python程序中进行文件读取和写入操作的教程,是Python学习当中的基础知识,需要的朋友可以参考下 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件).

opengl-openGL读取和写入,生成的图片是空的。

问题描述 openGL读取和写入,生成的图片是空的. 我从网上找的openGL教程 教到第十课关于读图片与写,可是不管用生成的图片是空的. #define WindowWidth 400 #define WindowHeight 400 #include #include #include #define BMP_HEADER_LENGtH 54 void grab(void) { FILE* pDummyFile; FILE* pWritingFile; GLubyte* pPixelData

dll c#-c#调用c++的dll出现尝试读取或写入受保护的内存问题

问题描述 c#调用c++的dll出现尝试读取或写入受保护的内存问题 使用c#调用c++的一个dll.c++的接口函数为: extern "C" __declspec(dllexport)bool __stdcall CreateDetmObject(IDetManager **ppDetManager); 参数IDetManager为一个结构体: struct IDetManager { virtual void __stdcall SetListener(HWND hWnd) = 0