php cvs 类,PHP把数据导出替CVS格式的类

PHP把数据导出为CVS格式的类

/

//第一次调用类,给csv的路径

#$b=new CsvFieldDump("./sample.csv");

//余下的这些函数是可选的-这取决于你想要什么

#$b->dump_headers();

#$b->dump_column_by_name(array("Description", "Code"));

#$b->dump_column_by_name("Code");

#$b->dump_column(array(1, 2, 3));

#$b->dump_column(3);

class CsvFieldDump {

var $headers;

var $fieldnum;

function CsvFieldDump($infile){

if(empty($infile)){

die("You must specify a csv file to read\n");

}

if(!file_exists($infile)){

die("$infile doesn't exist!\n");

}

$this->infile = $infile;

$this->fieldnum = $field;

$this->createFile=0;

return(true);

}

var $headers=array();

function dump_headers($dumptoscreen=1){

$this->fd=fopen($this->infile, "r") or die("Couldn't open csv file $file");

$count=0;

while($data = fgetcsv($this->fd, 1000, ",") ){

if(!$count){

if($dumptoscreen){

print_r($data);

}

$this->headers=$data;

}

$count=1;

}

return($this->headers);

}

function dump_column($num){

$this->fieldnum = $num;

$this->fd=fopen($this->infile, "r") or die("Couldn't open csv file $file");

$count=0;

while($data = fgetcsv($this->fd, 1000, ",")){

$array=array();

if(is_array($this->fieldnum)){

foreach($this->fieldnum as $num){

$array[]=$data[$num];

}

}else{

$array = array($data[$this->fieldnum]);

}

$this->write_line($array);

}

}

var $colname;

var $headers_flip;

function dump_column_by_name($name){

if(!isset($name)){

die("No field name specified");

}

$this->colname=$name;

$this->dump_headers(0);

$this->headers_flip = array_flip($this->headers);

if(is_array($this->colname)){

foreach($this->colname as $n){

$array[] = $this->headers_flip[$n];

}

}else{

$array[] = $this->headers_flip[$this->colname];

}

$this->dump_column($array);

}

function write_line($data){

$string="";

$num=count($data);

for($x=0;$x

$string.=$data[$x];

if($x

$string.=",";

}

}

echo $string."\n";

}

}

/// make it think its a c program :)

if(isset($argv[1])){

$filename = $argv[count($argv)-1];

if($argv[1] == "-h"){

render_help();

die();

}else{

$b=new CsvFieldDump($filename);

}

$x=0;

foreach($argv as $opt){

switch($opt) {

case "df":

case "-df" :

$number = $argv[$x+1];

if(strstr($number, ",")){

$numbers = explode(",",$number);

}else{

$numbers = $number;

}

$b->dump_column($numbers);

break;

case "-dn":

$number = $argv[$x+1];

if(strstr($number, ",")){

$names = explode(",",$number);

}else{

$names = $number;

}

$b->dump_column_by_name($names);

break;

case "--help":

case "-h" :

render_help();

break;

case "-dh" :

$b->dump_headers();

break;

}

$x++;

}

}

function render_help(){

echo "CsvFieldDump version 0.0.0.1 by mark fate_amendable_to_change@yahoo.com

-df = dumps field(s) number n - also (accepts comma delimited list for multiple field numbers eg: -df 1,2,3)

-dn = dumps field(s) named N (accepts comma delimited list for multiple names eg: -dn Code,Desc)

-dh = dumps csv headers

";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值