<?php
/** 返回文件从X行到Y行的内容(支持php5、php4)  
 * @param string $filename 文件名
 * @param int $startLine 开始的行数
 * @param int $endLine 结束的行数
 * @return string
 */
class ytt_getcsv{ 
public function getFileLines($filename, $startLine = '', $endLine='', $method='rb') {
    $content = array();
    $count = $endLine - $startLine;  
    // 判断php版本（因为要用到SplFileObject，PHP>=5.1.0）
    if(version_compare(PHP_VERSION, '5.1.0', '>=')){
        $fp = new SplFileObject($filename, $method);
        $fp->seek($startLine-1);// 转到第N行, seek方法参数从0开始计数
        for($i = 0; $i <= $count; ++$i) {
            $content[]=$fp->current();// current()获取当前行内容
            $fp->next();// 下一行
        }
    }else{//PHP<5.1
        $fp = fopen($filename, $method);
        if(!$fp) return 'error:can not read file';
        for ($i=1;$i<$startLine;++$i) {// 跳过前$startLine行
            fgets($fp);
        }
        for($i;$i<=$endLine;++$i){
            $content[]=fgets($fp);// 读取文件行内容
        }
        fclose($fp);
    }
    return array_filter($this->array_iconv($content)); // array_filter过滤：false,null,''
}
public function array_iconv($arr, $in_charset="gbk", $out_charset="utf-8"){
     $ret = eval('return '.iconv($in_charset,$out_charset,var_export($arr,true).';'));
     return $ret; 
  //return json_encode($ret,JSON_UNESCAPED_UNICODE);
  // 这里转码之后可以输出json
   }
}
?>