PHP 读写 CSV
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'));// 输出每一行数据, 并递增$totalforeach($sales as $sales_line){if(fputcsv($fh, $sales_line) === false){die("Can't write CSV line");}else{$total += $sales_line;}}fputcsv($fh, array('All Regions', '--', '--', $total));fclose($fh) or die("Can't close php://output");
页:
[1]