php分割txt文件

php分割txt文件,第1张

<?php

/**

* 104857600=100mb

* 10485760=10mb

* 10485760/吵谈5=2mb

* 读取的定义为源文件

* 写入的定义为目标文件

*/

$size=filesize('201808.txt')

$i=0

$block_info = []

while($size>0){

   升侍碰谈滑 //组建规格数组

    $block_info[]=[

    'size' =>$size>=104857600?104857600:$size,//目标文件大小

    'file' =>str_replace('.txt', '','201808.txt').'.'.($i++).'.txt'//目标文件名

    ]

    $size-=104857600//源文件大小递减

}

$fp = fopen('201808.txt',"rb")//打开源文件

foreach($block_info as $k =>$v){

    $handle = fopen($v['file'],'wb')//创建并打开目标文件

    fwrite($handle,fread($fp,$v['size']))//fwrite函数写入目标文件,fread函数读取源文件并读取设定字节数

    fclose($handle)//关闭目标文件

    unset($handle)//销毁变量

}

fclose ($fp)//结束关闭源文件

unset($fp)//销毁变量

echo "ok"//输出结果

如果文件不是很大的情况郑早,试试下面这个:

<?php

function split_file($file_name, $number_lines)

{

    try

 野衫   {

        if(!file_exists($file_name)) throw new Exception("文件不存在!")

        $contents_array = array_chunk(file($file_name), $number_lines)

        if(!$contents_array || !is_array($contents_array)) throw new Exception("文件内容不合法颂丛腔!")

        array_walk($contents_array, function($contents, $k){

            foreach($contents as $value){

                file_put_contents($k . '.txt', $value, FILE_APPEND)

            } 

        })

    }

    catch(Exception $e)

    {

        echo $e->getMessage()    

    }

}

split_file("README.md", 200)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12200147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存