/** * 文件内容分页读取函数 * @param string/Array $file_path_arr 文件名 * @param int $start 分页起始行数 * @return json * @author gongzheng <990653058@qq.com> * @since 2014年2月10日 15:23:51 */ function filePage( $file_path_arr, $start, $limit = 10 ) { $data = array( ); //返回数据格式 $line = -1; //数据总行数的统计 foreach ( $file_path_arr as $key => $file_path ) { $file_handle = new SplFileObject( $file_path ); $file_line = -1; while ( !$file_handle->eof() ) { $line++; $file_line++; if ( $line == $start ) { for ( $i = 0; $i < $limit; $i++ ) { if ( !$file_handle->eof() ) { $file_handle->seek( $file_line ); $line_arr = str_getcsv( $file_handle->current() ); if ( isset( $line_arr[2] ) ) { $data[] = $line_arr; } } $file_line++; } $current_key = $key + 1; //如果小于$limit接着读取下一个文件 if ( isset( $file_path_arr[$current_key] ) ) { while ( count( $data ) < $limit ) { if ( !isset( $file_path_arr[$current_key] ) ) { break; } $file_handle = new SplFileObject( $file_path_arr[$current_key] ); $num = $limit - (count( $data )); for ( $i = 0; $i < $num; $i++ ) { if ( !$file_handle->eof() ) { $file_handle->seek( $i ); $line_arr = str_getcsv( $file_handle->current() ); if ( isset( $line_arr[2] ) ) { $data[] = $line_arr; } } } $current_key++; } } break; } } break; } return $data; }