PHP 读写 CSV_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > PHP 读写 CSV

PHP 读写 CSV

 2012/2/14 10:22:00  yl.fighter  程序员俱乐部  我要评论(0)
  • 摘要:1.读取csv数据,输出到sales.csv文件中$sales=array(array('Northeast','2004-01-01','2004-02-01',12.54),array('Northwest','2004-01-01','2004-02-01',546.33),array('Southeast','2004-01-01','2004-02-01',93.26),array('Southwest','2004-01-01','2004-02-01',945.21),array
  • 标签:PHP
1. 读取csv数据, 输出到sales.csv文件中
$sales = array(
	array('Northeast', '2004-01-01', '2004-02-01', 12.54),
	array('Northwest', '2004-01-01', '2004-02-01', 546.33),
	array('Southeast', '2004-01-01', '2004-02-01', 93.26),
	array('Southwest', '2004-01-01', '2004-02-01', 945.21),
	array('All Regions', '---', '--', 1597.34),
);

$fh = fopen('sales.csv', 'w') or die("Can't open sales.csv");
foreach($sales as $sales_line){
	if(fputcsv($fh, $sales_line) === false){
		die("Can't write CSV line");	
	}
}

fclose($fh) or die("Can't close sales.csv");


2. 读取csv数据, 使用特殊的流输出
$sales = array(
	array('Northeast', '2004-01-01', '2004-02-01', 12.54),
	array('Northwest', '2004-01-01', '2004-02-01', 546.33),
	array('Southeast', '2004-01-01', '2004-02-01', 93.26),
	array('Southwest', '2004-01-01', '2004-02-01', 945.21),
	array('All Regions', '---', '--', 1597.34),
);

$fh = fopen('php://output', 'w');
foreach($sales as $sales_line){
	if(fputcsv($fh, $sales_line) === false){
		die("Can't write CSV line");	
	}
}

fclose($fh);


3. 读取csv数据, 输出到缓冲中
$sales = array(
	array('Northeast', '2004-01-01', '2004-02-01', 12.54),
	array('Northwest', '2004-01-01', '2004-02-01', 546.33),
	array('Southeast', '2004-01-01', '2004-02-01', 93.26),
	array('Southwest', '2004-01-01', '2004-02-01', 945.21),
	array('All Regions', '---', '--', 1597.34),
);

ob_start();
$fh = fopen('php://output', 'w') or die("Can't open php://output");
foreach($sales as $sales_line){
	if(fputcsv($fh, $sales_line) === false){
		die("Can't write CSV line");	
	}
}

fclose($fh) or die("Can't close php://output");
$output = ob_get_contents();
ob_end_clean();


4. 读取csv文件的数据
$fp = fopen('sample3.csv', 'r') or die("can't open file");
print "<table>\n";
while($csv_line = fgetcsv($fp)){
	print '<tr>';
	for($i=0, $j=count($csv_line); $i<$j; $i++){
		// print '<td>'.htmlentities($csv_line[$i]).'</td>';	
		print '<td>'.htmlentities(iconv("gb2312","utf-8",$csv_line[$i])).'</td>';
	}
	print "</tr>\n";
}
print "</table>\n";
fclose($fp) or die("can't close file");


5. 下载的CSV文件
$sales = array(
	array('Northeast', '2004-01-01', '2004-02-01', 12.54),
	array('Northwest', '2004-01-01', '2004-02-01', 546.33),
	array('Southeast', '2004-01-01', '2004-02-01', 93.26),
	array('Southwest', '2004-01-01', '2004-02-01', 945.21),
	array('中国', '2004-01-01', '2004-02-01', 945.21),
);

$fh = fopen('php://output', 'w') or die("can't open php://output");
$total = 0;

// 告诉浏览器发送的是一个csv文件
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="sales.csv"');

// 输出表头
fputcsv($output, array('Region', 'Start Date', 'End Date', 'Amount'));
// 输出每一行数据, 并递增$total
foreach($sales as $sales_line){
	if(fputcsv($fh, $sales_line) === false){
		die("Can't write CSV line");	
	}else{
		$total += $sales_line[3];	
	}
}

fputcsv($fh, array('All Regions', '--', '--', $total));

fclose($fh) or die("Can't close php://output");
发表评论
用户名: 匿名