2013-05-27 62 views
1

我想取一个文本文件,将它分成两半,然后将一半放在一个文件中,然后将剩下的一半放入下一个文件中。如何做到这一点?使用PHP将文本文件分成两半?

一个例子是: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++; 
} 
+5

通过线或字节 – Orangepill

+0

我可以用任何,我只是需要各半分割。 – Arbitrary

+0

如果文件很小,只需使用$ file = filegetcontents()即可。然后,只需分割$ variable一半,然后使用putfilecontents两次将它们写入磁盘。 – viljun

回答

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'); 
+0

+1,用于分割而不加载到变量:) –

+0

完美地工作,正是我想要的,非常感谢。 – Arbitrary