欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP處理CSV表格文件的常用操作方法總結(jié)

 更新時(shí)間:2016年07月01日 15:13:11   作者:eechen  
CSV文件以純文本形式存儲(chǔ)表格數(shù)據(jù),所以我們通過(guò)PHP數(shù)組能夠較為容易地對(duì)CSV中的數(shù)據(jù)進(jìn)行讀寫,這里我們就來(lái)看一下PHP處理CSV表格文件的常用操作方法總結(jié):

要做在線Excel表格編輯功能,Excel的xls文件格式的解析就是個(gè)問(wèn)題,畢竟這是微軟Office的私有專利格式.
所以要做的話還是用通用的csv(Comma Separated Value,逗號(hào)分隔值)格式吧.
各種辦公軟件都能識(shí)別csv表格,其實(shí)就是以特定分隔符(比如逗號(hào))分隔單元格的表格.
拿PHP來(lái)說(shuō),fgetcsv讀入csv表格,返回一個(gè)數(shù)組,
然后foreach輸出成HTML的<table>,這步操作幾行代碼就能實(shí)現(xiàn),非常簡(jiǎn)單.
工作量主要還在于瀏覽器前端,建議你用jQuery進(jìn)行DOM和AJAX操作,
要實(shí)現(xiàn)phpMyAdmin那樣細(xì)粒度雙擊單元格編輯,然后AJAX提交也不難,
或者整個(gè)表格寫好后一次性$("form").serialize();然后AJAX提交也可以.

CSV表格的幾條規(guī)則:
1.每一行的單元格內(nèi)容之間用逗號(hào)分隔.
2.如果單元格的內(nèi)容本身有逗號(hào),這個(gè)單元格的內(nèi)容將會(huì)用引號(hào)包含.
3.如果單元格的內(nèi)容本身有引號(hào):
(1)引號(hào)不在首或尾,這個(gè)單元格內(nèi)容不會(huì)被引號(hào)包含.
(2)引號(hào)在首或尾,這個(gè)單元格內(nèi)容會(huì)被引號(hào)包含,并且原來(lái)首尾的引號(hào)會(huì)被轉(zhuǎn)義.

讀寫CSV

<?php
header('Content-Type: text/plain; charset=utf-8');

//導(dǎo)出CSV表格:數(shù)組轉(zhuǎn)CSV
$arr = array (
  array('ab', 'cd'),
  array('"a,b"', '"c,d"'),
);
$fp = fopen('file.csv', 'w');
foreach ($arr as $row) {
  //將一行格式化為CSV并寫入文件指針
  fputcsv($fp, $row);
}
fclose($fp);
unset($arr);

//導(dǎo)入CSV表格:CSV轉(zhuǎn)數(shù)組
$fp = fopen('file.csv', 'r');
while ( ($row = fgetcsv($fp)) !== FALSE ) {
  //從文件指針中讀入一行并解析CSV
  $arr[] = $row;
}
fclose($fp);
var_export($arr);

另存為一個(gè)獨(dú)立文件
download.php:

 <?php
$list = array (
  'aaa,bbb,ccc,dddd',
  '123,456,789',
  '"aaa","bbb"'
);
session_start();
$_SESSION['outputArray']=$list;
?>
<a href="test.php" target="_blank">下載csv文件</a>

test.php:
<?php
session_start();
$outputArray=$_SESSION['outputArray'];
header('Content-Type: application/csv');
header('Content-Disposition: attachment;filename="sales.csv"');
$output=fopen('php://output','w') or die("can not open");
foreach ($outputArray as $line) {
  fputcsv($output, split(',', $line));
}
fclose($output) or die("can not close");
?>

自動(dòng)保存csv文件到指定地點(diǎn)
<?php

$list = array (
  'aaa,bbb,ccc,dddd',
  '123,456,789',
  '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
  fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

相關(guān)文章

  • PHP isset()與empty()的使用區(qū)別詳解

    PHP isset()與empty()的使用區(qū)別詳解

    本文主要介紹了PHP isset()與empty()的使用區(qū)別。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Yii中特殊行為ActionFilter的使用方法示例

    Yii中特殊行為ActionFilter的使用方法示例

    這篇文章主要給大家介紹了關(guān)于Yii中特殊行為ActionFilter的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 基于curl數(shù)據(jù)采集之單頁(yè)面并行采集函數(shù)get_htmls的使用

    基于curl數(shù)據(jù)采集之單頁(yè)面并行采集函數(shù)get_htmls的使用

    用第一篇的get_html()實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)采集,由于是一個(gè)一個(gè)執(zhí)行才采集數(shù)據(jù)的傳輸時(shí)間就會(huì)是所有頁(yè)面下載的總時(shí)長(zhǎng),一個(gè)頁(yè)面假設(shè)1秒,那么10個(gè)頁(yè)面就是10秒了。所幸curl還提供了并行處理的功能
    2013-04-04
  • YII2框架中驗(yàn)證碼的簡(jiǎn)單使用方法示例

    YII2框架中驗(yàn)證碼的簡(jiǎn)單使用方法示例

    這篇文章主要介紹了YII2框架中驗(yàn)證碼的簡(jiǎn)單使用方法,結(jié)合實(shí)例形式分析了Yii2框架驗(yàn)證碼的基本創(chuàng)建、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • php url路由入門實(shí)例

    php url路由入門實(shí)例

    這篇文章主要介紹了php url路由入門實(shí)例,解析url路由的實(shí)現(xiàn)細(xì)節(jié),需要的朋友可以參考下
    2014-04-04
  • laravel如何開(kāi)啟跨域功能示例詳解

    laravel如何開(kāi)啟跨域功能示例詳解

    這篇文章主要給大家介紹了關(guān)于laravel如何開(kāi)啟跨域功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 記錄Yii2框架開(kāi)發(fā)微信公眾號(hào)遇到的問(wèn)題及解決方法

    記錄Yii2框架開(kāi)發(fā)微信公眾號(hào)遇到的問(wèn)題及解決方法

    微信公眾號(hào)開(kāi)發(fā),提示“該公眾號(hào)暫時(shí)無(wú)法提供服務(wù),請(qǐng)稍后再試”,如何解決?下面小編給大家?guī)?lái)了解決方法,一起看看吧
    2018-07-07
  • PHPMailer ThinkPHP實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能

    PHPMailer ThinkPHP實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了PHPMailer ThinkPHP實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • PHP判斷是手機(jī)端還是PC端 PHP判斷是否是微信瀏覽器

    PHP判斷是手機(jī)端還是PC端 PHP判斷是否是微信瀏覽器

    這篇文章主要為大家詳細(xì)介紹了PHP判斷是手機(jī)端還是PC端,以及PHP判斷是否是微信瀏覽器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • phpize的深入理解

    phpize的深入理解

    本篇文章是對(duì)phpize的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評(píng)論