- 论坛徽章:
- 0
|
PHP 读写 CSV
1. 读取csv数据, 输出到sales.csv文件中
Php代码- $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");
- $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数据, 使用特殊的流输出
Php代码- $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);
- $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数据, 输出到缓冲中
Php代码- $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();
- $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文件的数据
Php代码- $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");
- $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文件
Php代码- $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");
复制代码 |
|