- ベストアンサー
初歩的ですが・・・
ある指定したファイルの内容を 別の指定したファイルへ新規に書き込む場合 どのようなロジックが効率的でしょうか? 元ファイルの行数は複数です。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$file1=$path."/file1.txt"; //元ファイル $file2=$path."/file2.txt"; //新規ファイル まずは元ファイルの内容を配列に取り込みます。 $fileopen=file("$file1"); これで配列$fileopenにfile1の内容が書き込まれました。 続いて新規ファイルを書込モードでオープンします。 当然そのファイルがないときは自動的に作るようにします。 $fp=fopen($file2,"w+"); 開いたファイルに配列を書き込んでいきます。 foreach($fileopen as $line) { fwrite($fp,$line); } 最後に新規ファイルを閉じます。 fclose($file2); 以上です。
その他の回答 (1)
- selenity
- ベストアンサー率41% (324/772)
回答No.1
ファイルの内容を全てコピーするのであれば、copy()関数で良いのでは。 特定の行のみをコピーするのであれば、sedやawkで正規表現を使った抜き出しも考えられます。
質問者
お礼
copy関数を使用したいのですが、 その後の拡張性を考慮するとできないんですよ(泣) sedやawkをつかえたらいいなぁ・・・ ちょっと勉強してみます。 ありがとうございました。
お礼
返信ありがとうございました。 上記のプログラムで意図した動きができました。 ありがとうございました。 また何か質問がありましたら、よろしくお願いいたします。