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)

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php。

2、在index.php中,输入代码:

$a = 19841231$b = []$c = []

while($a >0) {

$t = $a % 10

$a = intval($a / 10)

$b[] = $t

if (!isset($c[$t])) {

$c[$t] = 0

}

$c[$t]++

}

$b = array_reverse($b)

print_r($b)echo '<br/>'print_r($c)

3、浏览器运行index.php页面,此时打印出了19841231分割成一个个后的数组,以及各个数组出现的个数。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存