Heim >php教程 >php手册 >PHP操作csv文件代码详解

PHP操作csv文件代码详解

WBOY
WBOYOriginal
2016-06-13 10:09:041093Durchsuche

在php中读取操作csv文件的方法有很多,最简单的可以直接使用fopen像打开txt文件打开,然后利用explode按, 分开就成了,生成也一样直接使用a,b,c,e保存成csv格式就KO,但php还提供了fputcsv函数对csv文件操作,下面我来介绍介绍。

1.生成CVS,fputcsv()将行格式化为 CSV 并写入文件指针

 代码如下 复制代码

$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中有中文我们需要注意一下中文问题,否则中文乱码就会和你在一起玩哦,下面给了一个实例解决中文乱码。

 代码如下 复制代码

/** by www.bKjia.c0m */
$row = 1;
$handle = fopen("file.csv","r");
//fgetcsv() 解析读入的行并找出 CSV格式的字段然后返回一个包含这些字段的数组。
while ($data = fgetcsv($handle, 1000, ",")) {
    $num = count($data);
    echo "

$num fields in line $row:
n";
    $row++;
    for ($c=0; $c   //注意中文乱码问题
  $data[$c]=iconv("gbk", "utf-8//IGNORE",$data[$c]); 
        echo $data[$c] . "
n";
    }
}
fclose($handle);
?>

读取csv文件的某一行数据

 代码如下 复制代码

 

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文件制定行数(行区间)

 

 代码如下 复制代码
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 $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."
";
}
?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn