国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php將文本文件轉(zhuǎn)換csv輸出的方法

2024-05-04 23:29:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了php將文本文件轉(zhuǎn)換csv輸出的方法,通過(guò)對(duì)SplFileObject類的繼承與擴(kuò)展實(shí)現(xiàn)文本文件轉(zhuǎn)換輸出的功能,是非常實(shí)用的技巧,需要的朋友可以參考下
 
 

本文實(shí)例講述了php將文本文件轉(zhuǎn)換csv輸出的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

這個(gè)類提供了轉(zhuǎn)換成固定寬度的CSV文件,快速,簡(jiǎn)便的方法,它可將SplFileObject用于執(zhí)行迭代,使它非常高效的一個(gè)迭代只知道當(dāng)前成員,期權(quán)是提供給指定行字符和字段分隔符結(jié)束,This from CSV files.這個(gè)類是特別有用的,如果數(shù)據(jù)需要來(lái)自一個(gè)固定寬度的文件,并插入到數(shù)據(jù)庫(kù)中,因?yàn)榇蠖鄶?shù)的數(shù)據(jù)庫(kù)支持從CSV文件中的數(shù)據(jù)輸入.

這一類的方便的功能是可以跳過(guò)字段如果不是在輸出需要,該領(lǐng)域的陣列提供,提供了一個(gè)鍵/值對(duì),與主要持有的價(jià)值偏移,或啟動(dòng)領(lǐng)域的地位,和值包含的寬度,或字段的長(zhǎng)度,For example.例如,12 =“10是一個(gè)領(lǐng)域,在12位和寬度或字段的長(zhǎng)度為10個(gè)字符開(kāi)始.

底的行字符默認(rèn)成“ n”,而是可以設(shè)置為任何字符。

分隔符默認(rèn)為一個(gè)逗號(hào),但可以設(shè)置為任何字符,或字符。

從文件的輸出可以直接使用,寫(xiě)入一個(gè)文件,到數(shù)據(jù)庫(kù)或任何其他目的插入.

PHP實(shí)例代碼如下:

復(fù)制代碼代碼如下:
<?php 
/**  
* Class to convert fixed width files into CSV format  
* Allows to set fields, separator, and end-of-line character  
*  
* @author Kevin Waterson  
* @url http://phpro.org  
* @version $Id$  
*  
*/  
class fixed2CSV extends SplFileObject  
{  
/**  
*  
* Constructor, duh, calls the parent constructor  
*  
* @access       public  
* @param    string  The full path to the file to be converted  
*  
*/  
public function __construct ( $filename )  
{  
parent :: __construct ( $filename );  

 
/*  
* Settor, is called when trying to assign a value to non-existing property  
*  
* @access    public  
* @param    string    $name    The name of the property to set  
* @param    mixed    $value    The value of the property  
* @throw    Excption if property is not able to be set  
*  
*/  
public function __set ( $name , $value )  
{  
switch( $name )  
{  
case 'eol' :  
case 'fields' :  
case 'separator' :  
$this -> $name = $value ;  
break; 
 
default:  
throw new Exception ( "Unable to set $name " );  
}  

 
/**  
*  
* Gettor This is called when trying to access a non-existing property  
*  
* @access    public  
* @param    string    $name    The name of the property  
* @throw    Exception if proplerty cannot be set  
* @return    string  
*  
*/  
public function __get ( $name )  
{  
switch( $name )  
{  
case 'eol' :  
return " " ; 
 
case 'fields' :  
return array(); 
 
case 'separator' :  
return ',' ; 
 
default:  
throw new Exception ( " $name cannot be set" );  
}  

 
/**  
*  
* Over ride the parent current method and convert the lines  
*  
* @access    public  
* @return    string    The line as a CSV representation of the fixed width line, false otherwise  
*  
*/  
public function current ()  
{  
if( parent :: current () )  
{  
$csv = '' ;  
$fields = new cachingIterator ( new ArrayIterator ( $this -> fields ) );  
foreach( $fields as $f )  
{  
$csv .= trim ( substr ( parent :: current (), $fields -> key (), $fields -> current ()  ) );  
$csv .= $fields -> hasNext () ? $this -> separator : $this -> eol ;  
}  
return $csv ;  
}  
return false ;  
}  
} // end of class 
?>

 
Example Usage示例用法 
復(fù)制代碼代碼如下:
<?php 
try  
{  
/*** the fixed width file to convert ***/  
$file = new fixed2CSV ( 'my_file.txt' ); 
 
/*** The start position=>width of each field ***/  
$file -> fields = array( 0 => 10 , 10 => 15 , 25 => 20 , 45 => 25 ); 
 
/*** output the converted lines ***/  
foreach( $file as $line )  
{  
echo $line ;  

 
/*** a new instance ***/  
$new = new fixed2CSV ( 'my_file.txt' ); 
 
/*** get only first and third fields ***/  
$new -> fields = array( 0 => 10 , 25 => 20 ); 
/*** output only the first and third fields ***/  
foreach( $new as $line )  
{  
echo $line ;  

 
}  
catch( Exception $e )  
{  
echo $e -> getMessage ();  

?>

 

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新源县| 文成县| 固始县| 柏乡县| 两当县| 石台县| 中西区| 五常市| 高唐县| 榆社县| 南宁市| 阳朔县| 宝兴县| 怀来县| 临邑县| 台南县| 共和县| 崇明县| 筠连县| 台安县| 昔阳县| 浦北县| 民乐县| 马山县| 凤冈县| 宣汉县| 买车| 芜湖县| 康乐县| 甘南县| 漾濞| 项城市| 通城县| 沈阳市| 江门市| 青神县| 皮山县| 乐昌市| 门头沟区| 扶风县| 巴林左旗|