程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP操作csv文件代碼詳解

PHP操作csv文件代碼詳解

編輯:關於PHP編程

在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
function get_file_line( $file_name, $line_star, $line_end){
$n = 0;
$handle = fopen($file_name,"r");
if ($handle) {
while (!feof($handle)) {
++$n;
$out = fgets($handle, 4096);
if($line_star <= $n){
$ling[] = $out;
}
if ($line_end == $n) break;
}
fclose($handle);
}
if( $line_end==$n) return $ling;
return false;
}
$aa = get_file_line("windows_2011_s.csv", 11, 20); //從第11行到第20行
foreach ($aa as $bb){
echo $bb."<br>";
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved