使用PHP将文本文件拆分为一半?

时间:2013-05-27 18:24:33

标签: php text

我想取一个文本文件,将其分成两半,然后将一半放在一个文件中,然后将剩下的一半放在另一个文件中。如何实现这一目标?

一个例子是: split.php?n = file.txt

$file = $_GET['n'];

$i = 1;
$fp = fopen("./server/php/files/".$file,'a+');
$fs = filesize("./server/php/files/".$file);
$lengthhalf = $fs / 2;
while(! feof($fp)) {
    $contents = fread($fp,$lengthhalf);
    file_put_contents('./server/php/files/[2]'.$file,$contents);
    $i++;
}

1 个答案:

答案 0 :(得分:5)

这可以完成工作,不读取整个文件(或其中一半)一次在内存中

function split_in_halves($file, $half1, $half2) {
    $size = filesize($file);
    $fd = fopen($file, 'rb');

    stream_copy_to_stream($fd, fopen($half1, 'wb'), $size/2);
    stream_copy_to_stream($fd, fopen($half2, 'wb'));
}
split_in_halves('foo', '[1]foo', '[2]foo');