php关于大文件的读取
2016-09-19 16:19
141 查看
方法一:精确到文件的某一行
方法二:从X行到Y行到之间的内容
<?php function get_line($file,$line) { $fp = fopen($file,'r'); $i = 0; while(!feof($fp)) { $i++; $c = fgets($fp); if($i==$line) { echo $c; break; } } } echo get_line('dome.txt',181); $file='dome.txt'; $fp = fopen($file,'r'); echo $fp; ?>
方法二:从X行到Y行到之间的内容
<?php function getFileLines($filename, $startLine = 1, $endLine = 50, $method = 'rb'){ $content = array(); if (version_compare(PHP_VERSION, '5.1.0', '>=')) { // 判断php版本(因为要用到SplFileObject,PHP>=5.1.0) $count = $endLine - $startLine; $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 { $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($content); // array_filter过滤:false,null,'' } $arr = getFileLines('dome.txt',104550,104590,'rb'); $content = implode("<br>", $arr); echo $content; ?>
相关文章推荐
- 关于php读取文件内容 显示
- PHP远程任意文件读取及目录遍历漏洞
- 关于vs.net中读取文件出现乱码的现象
- 用 PHP 读取文件的正确方法
- php读取文件后标记都丢失了
- 关于文件保存到数据库及其读取的方法
- 关于读取文件中的中文内容
- 关于iis解析php文件的方案
- php一行一行读取文件_fgets函数
- [导入]转:两个关于.NET读取EXCEL文件的问题
- 今天解决了两个关于.NET读取EXCEL文件的问题,记下来,很有用!
- PHP 操作 XML 文件 - 读取、显示
- 今天解决了两个关于.NET读取EXCEL文件的问题,记下来,很有用!
- 关于Assembly.CreateInstance中被启动对象读取配置文件的问题
- 关于PHP操作文件的一些FAQ总结
- 关于PHP操作文件的一些FAQ总结
- 关于ePass1000在B/S结构下的文件内容读取(VBSCRIPT)
- 今天解决了两个关于.NET读取EXCEL文件的问题,记下来,很有用!
- 两个关于.NET读取EXCEL文件的问题,记下来,感觉很有用
- PHP读取目录下所有文件的代码