PHP实现文件内容的分页读取
/** * 文件内容分页读取函数 * @param string/Array $file_path_arr 文件名 * @param int $start 分页起始行数 * @return json * @author gongzheng <[email protected]> * @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; }
本文出自 “decode love” 博客,请务必保留此出处http://gzinfo.blog.51cto.com/2492370/1364949
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。