国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

Original 2017-01-04 13:34:58 334
abstract:CSV文件以純文本形式存儲表格數(shù)據(jù),所以我們通過PHP數(shù)組能夠較為容易地對CSV中的數(shù)據(jù)進(jìn)行讀寫,這里我們就來看一下PHP處理CSV表格文件的常用操作方法總結(jié):要做在線Excel表格編輯功能,Excel的xls文件格式的解析就是個(gè)問題,畢竟這是微軟Office的私有專利格式.所以要做的話還是用通用的csv(Comma Separated Value,逗號分隔值)格式吧.各種辦公軟件都能識別csv表

CSV文件以純文本形式存儲表格數(shù)據(jù),所以我們通過PHP數(shù)組能夠較為容易地對CSV中的數(shù)據(jù)進(jìn)行讀寫,這里我們就來看一下PHP處理CSV表格文件的常用操作方法總結(jié):

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

CSV表格的幾條規(guī)則:
1.每一行的單元格內(nèi)容之間用逗號分隔.
2.如果單元格的內(nèi)容本身有逗號,這個(gè)單元格的內(nèi)容將會用引號包含.
3.如果單元格的內(nèi)容本身有引號:
(1)引號不在首或尾,這個(gè)單元格內(nèi)容不會被引號包含.
(2)引號在首或尾,這個(gè)單元格內(nèi)容會被引號包含,并且原來首尾的引號會被轉(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");
?>

    

自動保存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處理CSV表格文件的常用操作方法總結(jié)請關(guān)注PHP中文網(wǎng)(www.miracleart.cn)其它文章! 


Release Notes

Popular Entries