php将大文件平均拆分成小文件

本文记录了如何使用PHP将大文件按行平均拆分成多个小文件,避免在行内拆分,确保每个小文件的每一行都是完整的。主要涉及ftell()和fseek()函数的使用。
摘要由CSDN通过智能技术生成

最近获得了一个40多万行数据的文件,需要把这个大文件分成小文件,在做完这件事之后,写个文档记录一下。

相关主要函数

  • ftell() 返回文件指针的当前位置。

  • fseek() 把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。如果成功该函数返回 0,如果失败则返回 -1。

    <?php
     $file = fopen('source/data.txt','r+') or die('fail');
     echo ftell($file) . '<br>';                //文件打开的初始指针,0
     echo fread($file,20) . '<br>';     	    //读取前20位字符,换行符算一位字符
     echo ftell($file) . '<br>';                //当前指针,20
     echo fseek($file, 30) . '<br>';            //重置指针到第30位
     echo ftell($file) . '<br>';                //当前指针,30
     fclose($file);
    

输出

0
272731 321343 269707
20
0
30

这些函数提供的功能,可以给拆分文件提供一个思路:将指针不断地移动相同的位数,每移动一次指针得到一个等长字符串,将等长字符串写入新的文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值