博客列表 >生成和写入CSV文件

生成和写入CSV文件

福哥的博客
福哥的博客原创
2017年07月27日 17:33:011170浏览
<?php
header("Content-type:text/html;charset=utf-8");
$item=array(array(1,2,3,4),
array(0,0,0,0),array(0,0,0,0),array(0,0,0,0),array(0,0,0,0),array(0,0,0,0),array(0,0,0,0));

ini_set('max_execution_time',300);
$cate;$item;$value;$us;
$fp = fopen("into0.csv","a");


if (flock($fp,LOCK_EX)){
   foreach ($item as $line){
@fputcsv($fp,array($line[0],$line[1],$line[2],$line[3]));
    //sleep(1);    
       
}      
    echo "成功!";
    flock($fp,LOCK_UN);
}else{
    echo '文件正在使用,请稍后 !';
}

fclose($fp);
    
?>

1.php数据创建CSV文件
此函数使用fputcsv PHP内置函数生成逗号分隔文件(.CSV).该函数有3个参数:数据,分隔符和CSV enclosure,默认是双引号。

function generateCsv($data,$delimiter=',',$enclosure='"'){
    $handle = fopen('php://temp','r+');
    foreach($data as $line){
        fputcsv($handle,$line,$delimiter,$enclosure);
    }
    rewind($handle);
    while(!feof($handle)){
        $contents .=fread($handle,8192);
    }
    fclose($handle);
    return $contents;
}

用法

$data[0] = "apple";
$data[1] = "oranges";
generateCsv($data,$delimiter=',',$enclosuer='"');

2.php写入和读取数据到CSV文件

$row = 0;
ini_set('max_execution_time',300);
$cate;$item;$value;$us;
$fp = fopen("into.csv","a");
if(($handle = fopen("USER.csv","r"))!== FALSE){
    while (($data = fgetcsv($handle,1000,","))!==FALSE){
    $num = count($data);//列数

    $row++;
    for($c=0;$c<$num;$c++){
        if($c==0){
            $us = $data[$c];//第一列数据
            //print_r ($us) ;
        }
        if($c==1){
            $item = explode(" ",$data[$c]);//第2列数据
            echo "<PRE>";
            print_r($data[$c]);
        }elseif($c==2){
            $value=$data[$c];//第3列数据
            
        }elseif($c==3){
            $cate1=$data[$c];//第4列数据
        }else{    
        }
    }//end of for loop
if($row > 1838){
    exit;
        }
    @fputcsv($fp,array($us,$item[0],$item[1],$item[2],$item[3]));
    }//End of While
}//End of If
fclose($handle);
fclose($fp);

这个跟fputcsv无关,而主要的关键在于你打开文件的模式,你需要使用 a 或是 a+ 模式打开文件。

'a'     写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+'     读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

$fp = fopen('file.csv', 'a+');
foreach($stu as $data);
{
    fputcsv($fp,$data); //每次写入一组数据到csv文件中的一行
}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
技术驱动2020-04-22 15:12:301楼
领教了,经常回来看看