php操作大文件 用fopen fseek 等操作超过2g的文件就会出错php现在只支持到2g的文件请问怎么解决呢,对文件大小没有限制呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不要一次全部读入到内存中,PHP是有内存限制的。使用fseek定位文件指针,仅读取需要的部分,及时释放。 fseek最大偏移就是2g了,读2g后面的读不到啊 32位php,2G 约为 PHP_INT_MAX/pow(1024,3),再往前+1就溢出了. $fp = fopen ("file2g.txt", "r");$content = '';$test = false;while (!feof($handle)) { $r = fread($handle, 1); //比如每次读一个字节 if($r=="\n"){ //假设你是用\n对字符串进行分割的 if($content=='aaaa'){ $test=true; } $content = ''; }else{ $content .= $r; }}fclose($handle);这就是指针读取了,你的文件总是有规则的吧,按规则切分开了,做你要的判断,如果你把读取的所有字符串直接赋值给一个变量的肯定也是不能操作的了2g的文件,建议最好分割成多文件进行操作 LZ不是扯淡么,你想支持2G以上的文件读取就不要用32位的系统,人家foolbirdflyfirst已经非常专业的告诉你答案了,你还在问个鸟,实话告诉你,你想在32位系统下读2G以上的文件就好比你现在只有1万快钱你又不贷款想买100万的房子,可能么? 首先32位系统下通过php本身是不可以读取大于2g的文件,但是通过写php的扩展程序时可以的,windows下的话使用vc的一些读取文件的接口就可以,linux系统的话那就更简单了。但是这种解决方法可移植性太差。我现在是问一下有没有其他的解决方法。 php传值翻页 求一个php的网上实时竞价/拍卖系统? base64乱码 php的读取mysql中的图片路径 为什么在CGI中有mysql而isapi中没有 php加载php_oci8.dll的问题 如何既传递变量值又可控制弹出窗口的模式? 难道今天是php千年虫?遇到了怪问题 PHP技术报错:mysql_connect(): The mysql extension is deprecated and will be removed i 前端开发和后端开发如何连接起来?或者说,如何结合起来。。 如何将一个用户的行为和数据通知到另外一个用户的页面上去 php 怎么让数字字符做索引
使用fseek定位文件指针,仅读取需要的部分,及时释放。
$fp = fopen ("file2g.txt", "r");
$content = '';
$test = false;
while (!feof($handle)) {
$r = fread($handle, 1); //比如每次读一个字节
if($r=="\n"){
//假设你是用\n对字符串进行分割的
if($content=='aaaa'){
$test=true;
}
$content = '';
}else{
$content .= $r;
}
}
fclose($handle);这就是指针读取了,你的文件总是有规则的吧,按规则切分开了,做你要的判断,如果你把读取的所有字符串直接赋值给一个变量的肯定也是不能操作的了2g的文件,建议最好分割成多文件进行操作