在php中讀取操作csv文件的方法有很多,最簡單的可以直接使用fopen像打開txt文件打開,然後利用explode按, 分開就成了,生成也一樣直接使用a,b,c,e保存成csv格式就KO,但php還提供了fputcsv函數對csv文件操作,下面我來介紹介紹。
1.生成CVS,fputcsv()將行格式化為 CSV 並寫入文件指針
代碼如下 復制代碼<?php
$list = array (
'aaa,bbb,ccc,dddd',
'11,22,33',
'"php","java"'
);
$fp = fopen('file.csv', 'w');
foreach ($list as $line) {
fputcsv($fp, explode(',', $line));
}
fclose($fp);
?>
小提示,如果你csv中有中文我們需要注意一下中文問題,否則中文亂碼就會和你在一起玩哦,下面給了一個實例解決中文亂碼。
<?php
/** by www.bKjia.c0m */
$row = 1;
$handle = fopen("file.csv","r");
//fgetcsv() 解析讀入的行並找出 CSV格式的字段然後返回一個包含這些字段的數組。
while ($data = fgetcsv($handle, 1000, ",")) {
$num = count($data);
echo "<p> $num fields in line $row: <br>n";
$row++;
for ($c=0; $c < $num; $c++) {
//注意中文亂碼問題
$data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]);
echo $data[$c] . "<br>n";
}
}
fclose($handle);
?>
讀取csv文件的某一行數據
代碼如下 復制代碼
<?php
function get_file_line( $file_name, $line ){
$n = 0;
$handle = fopen($file_name,'r');
if ($handle) {
while (!feof($handle)) {
++$n;
$out = fgets($handle, 4096);
if($line==$n) break;
}
fclose($handle);
}
if( $line==$n) return $out;
return false;
}
echo get_file_line("windows_2011_s.csv", 10);
?>
讀取csv文件制定行數(行區間)
代碼如下 復制代碼 <?php