php文本分割成csv,怎么在php中将文本文件转换为csv文件并输出

本文介绍如何在PHP中将固定宽度的文本文件转换为CSV格式并输出。通过自定义的fixed2CSV类,可以设置字段起始位置和宽度,从而实现转换。示例代码展示了如何读取文本文件,设置字段信息,并输出转换后的CSV行。
摘要由CSDN通过智能技术生成

怎么在php中将文本文件转换为csv文件并输出

发布时间:2021-02-19 17:30:27

来源:亿速云

阅读:88

作者:Leah

本篇文章给大家分享的是有关怎么在php中将文本文件转换为csv文件并输出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

PHP实例代码如下:

class fixed2CSV extends SplFileObject

{

public function __construct ( $filename )

{

parent :: __construct ( $filename );

}

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 " );

}

}

public function __get ( $name )

{

switch( $name )

{

case 'eol' :

return " " ;

case 'fields' :

return array();

case 'separator' :

return ',' ;

default:

throw new Exception ( " $name cannot be set" );

}

}

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示例用法

复制代码 代码如下:

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 ();

}

?>

以上就是怎么在php中将文本文件转换为csv文件并输出,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值