基于PHP读取csv文件内容的详解

一次性读取csv文件内所有行的数据


代码如下:

<?php
$file = fopen('windows_2011_s.csv','r');
while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容
//print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可
$goods_list[] = $data;
 }
//print_r($goods_list);
/* foreach ($goods_list as $arr){
    if ($arr[0]!=""){
        echo $arr[0]."<br>";
    }
} */
 echo $goods_list[2][0];
 fclose($file);
?>

读取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>";
}
?>

另外从网上找的两种方法(没测试,不知道好不好使)


代码如下:

<?
$handle=fopen("1.csv","r");
while(!feof($handle)){
$buffer=fgetss($handle,2048);
$data=explode(",",$buffer);
$num=count($data);
for($i=0;$i<$num;$i++){
print_r($data);
}
}
?>

代码如下:

<?
$handle=fopen("1.csv","r");
$row=1;
while($data=fgetcsv($handle,1000,",")){
$num=count($data);
for($i=0;$i<$num;$i++){
echo $data[$i];
}
$row++;
}
?>

(0)

相关推荐

  • PHP下载生成的csv文件及问题总结

    最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器.虽然说csv是一种比较简单的excel表格形式,生成只要按指定格式然后生成.csv文件就可以,但是在使用中也会遇到很多问题,下面给大家分享下PHP下载csv文件及问题总结 首先大家先看个例子,生成csv文件并下载 //要生成csv文件的数组 $csvArr=array(); $csvArr[]=array('用户编号1','上班日期1','签到时间1','签退时间1'); $csvArr[]=ar

  • php中数据的批量导入(csv文件)

    有时写程序时后台要求把大量数据导入数据库中,比如计算机考试成绩的查询.电话簿的数据等一般都是存放在excel中的,这时我们可把数据导出成csv文件,然后通过以下程序即可在后台批量导入数据到数据库中. 下面只是主要程序部分: <?php /***************************************************作者:冲星/arcow**************************njj@nuc.edu.cn*****************************

  • php对csv文件的读取,写入,输出下载操作详解

    复制代码 代码如下: <?php       $file = fopen('text.csv','r'); while ($data = fgetcsv($file)) {    //每次读取CSV里面的一行内容      //print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可   $goods_list[] = $data;    }//print_r($goods_list);echo $goods_list[0][1];    fclose($file);

  • php写入数据到CSV文件的方法

    本文实例讲述了php写入数据到CSV文件的方法.分享给大家供大家参考.具体实现方法如下: <?php $row = 0; ini_set('max_execution_time', 300); $cate;$item;$value;$us; $fp = fopen("torah1.csv", "w"); if (($handle = fopen("t.csv", "r")) !== FALSE) { while (($d

  • PHP实现CSV文件的导入和导出类

    本文实例讲述了PHP实现CSV文件的导入和导出类.分享给大家供大家参考.具体如下: <?php /** * CSV 文件处理类 */ class Csv{ public $csv_array; //csv数组数据 public $csv_str; //csv文件数据 public function __construct($param_arr, $column){ $this->csv_array = $param_arr; $this->path = $path; $this->

  • php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)

    命令: fputcsv() 命令格式:int fputcsv ( resource handle [, array fields [, string delimiter [, string enclosure]]] ) 命令解析:fputcsv() 将一行(用 fields数组传递)格式化为 CSV 格式并写入由 handle指定的文件.返回写入字符串的长度,出错则返回 FALSE. 可选的 delimiter参数设定字段分界符(只允许一个字符).默认为逗号:,. 可选的 enclosure参数

  • php将csv文件导入到mysql数据库的方法

    本文实例讲述了php将csv文件导入到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 本程序实现数据导入原理是先把csv文件上传到服务器,然后再通过php的fopen与fgetcsv文件把数据保存到数组,然后再用while把数据一条条插入到mysql数据库,代码如下: 复制代码 代码如下: <?php $fname = $_files['myfile']['name']; $do = copy($_files['myfile']['tmp_name'],$fname); if ($

  • PHP按行读取、处理较大CSV文件的代码实例

    对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指定的某几行数据: 复制代码 代码如下: /** * csv_get_lines 读取CSV文件中的某几行数据 * @param $csvfile csv文件路径 * @param $lines 读取行数 * @param $offset 起始行数 * @return array * */functi

  • php实现的读取CSV文件函数示例

    本文实例讲述了php实现的读取CSV文件函数.分享给大家供大家参考,具体如下: function read_csv($cvs) { $shuang = false; $str = file_get_contents($cvs); for ($i=0;$i<strlen($str);$i++) { if($str{$i}=='"') { if($shuang) { if($str{$i+1}=='"') { $str{$i} = '*'; $str{$i+1} = '*'; } e

  • 详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. 复制代码 代码如下: CREATE TABLE `student` (       `id` int(11) NOT NULL auto_increment,       `name` varchar(50) NOT NULL,       `sex` varchar(10) NOT NULL,       `age` smallint(3) NO

  • php导入csv文件碰到乱码问题的解决方法

    今天主要是想写一个php导入csv文件的方法,其实网上一搜一大把.都是可以实现怎么去导入的.但是我导入的时候遇到了两个问题,一个是在windows上写代码的时候测试发生了乱码问题,然后解决了.第二个是提交到linux系统上的时候又发生了乱码.我开始还不清楚是乱码的原因,一开始我还以为是代码svn提交发生的错误,到最后我在我的一个群里提问了一下,一朋友是做phpcms的,他说他遇到从Windows提交到Linux的时候刚开始也总是发生错误,后来排查原因就是乱码导致成的.下面切入正题看怎么解决两个问

  • php使用fgetcsv读取csv文件出现乱码的解决方法

    本文实例讲述了php使用fgetcsv读取csv文件出现乱码的解决方法.分享给大家供大家参考.具体分析如下: 一般来说在php中碰到乱码多半是编码问题,在这里我们实例分析了fgetcsv读取csv文件乱码原因所在与解决方法. 例子如下: 复制代码 代码如下: function get_csv_contents( $file_target ){  $handle  = fopen( $file_target, 'r');  while ($data = fgetcsv($handle, 1000,

随机推荐