开发者社区> 问答> 正文

求问,php读取csv:报错

求问,php在读取csv的时候能获取到行号的信息吗?或者读取指定行号的信息?

展开
收起
kun坤 2020-06-07 22:02:54 425 0
1 条回答
写回答
取消 提交回答
  • 当txt读,然后把数据放在数组里面######回复 @helius : 不会php哦,我说的是通用的方式######我的意思是fgetcsv这个函数每读取一行指针会移动到下一行,我想知道当前是读取到第几行,或者实现以下从第几行开始读,我知道fread 换行符自己计算一下有可能实现,有没有更简便的方法,谢谢######google: php csv parser
    ######求实现啊,麻烦复制下过来######??这啥玩意?######

    fgets,每次读取一行,加个计数器,就可以知道当前读取的第几行。


    ######这样会不会不太好,计数器是变量,不是一种不可变更的“常量”,如果程序意外更改了值那不是很悲剧,所以还是希望有get_line这种类似的函数来获取最好的,你的想法跟数组来做堆栈的想法有些类似,不过还是谢谢你;)######
    fgetcsv 改造下即可

    ######全部读入,然后取需要的。######

    这样不知道符合你的要求吗?

    <?php
    
    	// $filename 文件的名称
    	// $num 要读取得行编号
    	// $linenum 要读取几行 0为$num之后的所有数据
    
    	function rline($filename,$num,$linenum = 1)
    	{
    		$needle = "\r\n";
    		
    		$str = file_get_contents($filename);
    
    		$tok = strtok($str,$needle);
    
    		$i = 0;
    		while($tok != false){
    
    			$tok = strtok($needle);
    			if($linenum != 0 ){
    				if( $i >= $num && $i<$num+$linenum)
    				{	
    					$arr[$i] = $tok;
    				}	
    			}else{
    				if( $i >= $num )
    				{	
    					$arr[$i] = $tok;
    				}
    
    			}
    			
    			$i++;
    
    		}
    
    		return $arr;
    
    	}
    
    	$filename = '.\\1.csv';
    	var_dump(rline($filename,2,0));
    
    
    
    
    ?>

    2020-06-08 11:15:55
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载