【PHP大文件的读取和写入问题】教程文章相关的互联网学习教程文章

【转】PHP如何快速读取大文件【代码】

在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。需求需求有一个800M的日志文件,大约有500多万行, 用PHP返回最后几行的内容。实现方法1. 直接采用file函数来操作由于 file函数是一次性将...

php读取大文件示例分享(文件操作类)

Lib_File2.php复制代码 代码如下:<?php class Lib_File2 { //文件目录 private $root = ‘/data/wwwroot/kkpromo/data/‘; //文件后缀 private $suffix = ‘.log‘; //文件句柄 private $handle=null; //一次读取文件的最大记录数 private $limit=40000; //每行读取的字节长度 private $length=1024; //开始时间 private $startTime=0; //内存使用基准点 private static $startMemory=0; // private $conn=null...

php笔记之:有规律大文件的读取与写入的分析

这几天在做一个东西.研究PHP读取行数较多的文件(大概上百万行).考虑到效率问题.进行了简单的研究.总结如下第一条.file()函数的效率问题.file()函数的效率很底下 如果是有规律的文件.比如每行一条相应数据.那么尽量不要是用file()函数可以使用file_get_contents()然后用explode切割.这样效率会快三分之一举个例子:文件样式如下:11111\n22222\n33333\n44444\n55555\n.....\nnnnnnnnnnnn\n如果用file($file)读入的话.耗时很长.可以用如...

PHP读取大文件的几种方法【代码】

场景:PHP读取超大文件,例如1G的日志文件,我这里使用的是400M的access.log文件1、使用file直接读取<?php $starttime=microtime_float();ini_set(‘memory_limit‘, ‘-1‘); $file = ‘testfile.txt‘;$data = file($file); $line = $data[count($data) - 1000]; $endtime=microtime_float();echo count($data),"<br/>"; echo $endtime-$starttime;function microtime_float(){list($usec, $sec) = explode(" ", microtime());re...

php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

转自: http://blog.sina.com.cn/s/blog_6c739e63010137ui.html php手册上传错误资料:http://php.net/manual/zh/features.file-upload.errors.phphttp://php.net/upload-max-filesizeMaximum number of files that can be uploaded via a single requestmax_file_uploads = 20 :单个请求时,允许上传的最大文件数 ;Maximum allowed size for uploaded files.upload_max_filesize = 64M,允许上传你的最大文件大小 ; ; Maximum siz...

php -- 读取大文件【代码】

在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。需求需求有一个800M的日志文件,大约有500多万行, 用PHP返回最后几行的内容。实现方法1. 直接采用file函数来操作由于 file函数是一次性将...

PHP对大文件的处理思路【代码】

需求: 现有一个1G左右的日志文件,大约有500多万行, 用php返回最后几行的内容。在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、file_get_contents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件时,这些函数可能就显的力不从心, 下面将从一个需求入手来说明对于读取大文件时,常用的操作方法。1. 直接采用file函数来操作由于 file函数是一次性将所有内...

PHP上传大文件和处理大数据【代码】

1. 上传大文件/* 以1.5M/秒的速度写入文件,防止一次过写入文件过大导致服务器出错(chy/20150327) */$is_large_file = false;if( strlen($xml_str)>=2097152 ){ //当文件大于2M$is_large_file = true;fwrite($fp, $pre, strlen($pre)); //写入头部$start = 0;while( $content=mb_strcut($xml_str,$start,1572864) ){$start = $start + 1572864;$writeResult = fwrite($fp, $content, strlen($content));if( !$writeResult ){unlink...

PHP读取CSV大文件导入数据库

PHP如何对CSV大文件进行读取并导入数据库?对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象。为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的。下面这个函数是读取CSV文件中指定的某几行数据:/** * csv_get_lines 读取CSV文件中的某几行数据 * @param $csvfile csv文件路径 * @param $lines 读取行数 * @param $offset 起始行数 * @return array * */ func...

php读取大文件的方法【代码】

1、使用file 函数直接读取$starttime = microtime_float(); ini_set(‘memory_limit‘,‘-1‘); $file = "testfile.txt"; $data = file($file); $line = count($data);//总行数$lastLine = $data[count($data)-1]; //最后一行echocount($data); echo$endtime = microtime_float();function microtime_float(){list($usec,$sec) = explode(" ",microtime());return (float($usec) + float($sec)) }缺点,非常耗时,此方法不推荐使用...

PHP 读取和修改大文件的某行内容的代码

复制代码 代码如下:$fp = fopen(‘d:/file.txt‘, ‘r+‘); if ($fp) { $i = 1; while (!feof($fp)) { //修改第二行数据 if ($i == 2) { fseek($fp, 2, SEEK_CUR); fwrite($fp, ‘#‘); break; } fgets($fp); $i++; } fclose($fp); } 这里需要注意的是fgets获取到一行后,文件指针指向行尾(也就是下一行开头),所以fwrite操作的是fgets后的下一行开头,至于从该行的第几个字符开始写,可以使用fseek函数来移动文件指针。另外一个需...

php+nginx导入太大文件报http error错误的原因

项目中用到太多的导入导出,最近换了服务器,导致一旦文件过大就出现http error的错误,查找后是配置文件没有同步的原因,php.ini需要几个配置upload_max_filesize = 20M 表示上传的最大文件为20Mpost_max_size = 20M 允许post提交的最大数据upload_tmp_dir = 这个上传的临时文件必须要有权限,好像在linux下默认是/tmp 文件下,这个不是很确定max_execution_time = 300 表示php运行最大时间,也可以程序中用 set_time_limit(300)...

php 大文件上传

默认情况下,可以上传2M以下的文件对于更大的文件的上传要进行以下设置:打开php.ini,首先找到file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2Mpost_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为...

PHP读取过大文件的几种方法

1.简单粗暴,简单直接采用file函数来操作  由于 file函数是一次性将所有内容读入内存,而php为了防止一些写的比较糟糕的程序占用太多的内存而导致系统内存不足,使服务器出现宕机,所以默认情况下限制只能最大使用内存16M,这是通过php.ini里的 memory_limit = 16M来进行设置,这个值如果设置-1,则内存使用量不受限制.下面是一段用file来取出这具文件最后一行的代码.ini_set(‘memory_limit‘,‘-1‘);$file = ‘access.log‘;$d...

PHP利用APC模块实现大文件上传进度条的方法【代码】

php 大文件带进度的上传,一直是一个令php程序员很苦恼的问题。查询baidu 、Google ,大体做带进度的上传方式为:flash+php,socket,apc+php等,下面我介绍了apc +php+ajax制作的带进度的上传,并贴出源码,希望对大家有用。 Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。 在使用apc时候,先必须使用安装apc 模块。第一步:下载php_apc.dl...