PHP操作csv文件代码详解
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-10 14:58:00 浏览: 评论:0
在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.phpfensi.com */
- $row = 1;
- $handle = fopen("file.csv","r");
- //fgetcsv() 解析读入的行并找出 CSV格式的字段然后返回一个包含这些字段的数组。
- while ($data = fgetcsv($handle, 1000, ",")) {
- //开源代码phpfensi.com
- $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>";
- }
- ?>
Tags: PHP操作csv csv文件代码
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)