/**
* 文件内容分页读取函数
* @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;
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章