php实现读取和写入tab分割的文件
本文实例讲述了php实现读取和写入tab分割的文件。分享给大家供大家参考。具体分析如下:
这段php代码实现读取和写入tab分割的文件,包含两个独立的函数,一个读,一个写,例如cvs文件等
//
//saveanarrayastabseperatedtextfile
//
functionwrite_tabbed_file($filepath,$array,$save_keys=false){
$content='';
reset($array);
while(list($key,$val)=each($array)){
//replacetabsinkeysandvaluesto[space]
$key=str_replace("\t","",$key);
$val=str_replace("\t","",$val);
if($save_keys){$content.=$key."\t";}
//createline:
$content.=(is_array($val))?implode("\t",$val):$val;
$content.="\n";
}
if(file_exists($filepath)&&!is_writeable($filepath)){
returnfalse;
}
if($fp=fopen($filepath,'w+')){
fwrite($fp,$content);
fclose($fp);
}
else{returnfalse;}
returntrue;
}
//
//loadatabseperatedtextfileasarray
//
functionload_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;
}
/*
**Exampleusage:
*/
$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'=>'helloworld'
);
//savethearraytothedata.txtfile:
write_tabbed_file('data.txt',$array,true);
/*thedata.txtcontentlookslikethis:
line1data-1-1data-1-2data-1-3
line2data-2-1data-2-2data-2-3
line3data-3-1data-3-2data-3-3
line4foobar
line5helloworld
*/
//loadthesavedarray:
$reloaded_array=load_tabbed_file('data.txt',true);
print_r($reloaded_array);
//returnsthearrayfromabove
希望本文所述对大家的php程序设计有所帮助。