本文实例讲述了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程序设计有所帮助。