2013-07-01 11 views
5

通常の方法でtxt1a+に開き、txt2を1行ずつ読み込み、各行をtxt1にコピーするよりも、2つのテキストファイルをPHPで連結する方が速いかどうかを知りたいです。PHPでファイルを連結する

+0

あなたは、Unixでファイルを結合するには、execを使用することができます。 – karmafunk

+0

どのように各行をtxt1にコピーしていますか? – sroes

+1

'file_get_contents'を使ってファイル全体を一度に取得できます。 –

答えて

7

ためのコマンドラインの権限を持っている場合は、純粋なPHPソリューションを使用する場合は、ファイル全体を読み取るためにfile_get_contentsを使用することができ、Linuxでcatプログラムを使用するために、おそらくはるかに高速です文字列にして、それを書き出す(エラーチェックをしない、ちょうどあなたがそれを行うことができる方法を示します):

$fp1 = fopen("txt1", 'a+'); 
$file2 = file_get_contents("txt2"); 
fwrite($fp1, $file2); 
+0

メモリが豊富でファイルがあまり大きくない場合は、これは良いことです。 – scott80109

10

それはあなたがPHP

system('cat txt1 txt2 > txt3'); 
+0

'cat'は内部コマンドまたは外部、1レベルのオペレーションプログラムまたはバッチファイルとして認識されません。 (Appserv on windows 7. PHPバージョン5.2.6) – Guttemberg

+0

@Guttemberg申し訳ありませんが、これは* nixサーバー上で実行されていると仮定していました – Patrick

+0

Blackfireの 'file_get/put_contents'〜1 MBの〜400個のファイルに対する回答。 'cat'の欠点は、プログレスバーを作ることができないということです。 – Rudie

6
$content = file_get_contents("file1"); 
file_put_contents("file2", $content, FILE_APPEND); 
関連する問題