• ベストアンサー

初歩的ですが・・・

ある指定したファイルの内容を 別の指定したファイルへ新規に書き込む場合 どのようなロジックが効率的でしょうか? 元ファイルの行数は複数です。 よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.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); 以上です。

pantsu69
質問者

お礼

返信ありがとうございました。 上記のプログラムで意図した動きができました。 ありがとうございました。 また何か質問がありましたら、よろしくお願いいたします。

その他の回答 (1)

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

ファイルの内容を全てコピーするのであれば、copy()関数で良いのでは。 特定の行のみをコピーするのであれば、sedやawkで正規表現を使った抜き出しも考えられます。

参考URL:
http://jp.php.net/manual/ja/function.copy.php
pantsu69
質問者

お礼

copy関数を使用したいのですが、 その後の拡張性を考慮するとできないんですよ(泣) sedやawkをつかえたらいいなぁ・・・ ちょっと勉強してみます。 ありがとうございました。

関連するQ&A

  • 複数のファイルをコピーして別フォルダに貼り付けたい

    複数のファイルをコピーして別フォルダに貼り付けたいのですが、やり方がわかりません。 100近いファイルがあるので、コマンドプロンプトを使おうと思い、ネットで調べたのですがわかりませんでした。(ひとつのファイルならできました。) 複数のファイルをコピーさせる際、 copy (コピー元のファイル) (コピー先のフォルダ) で、コピー元のファイルを複数指定したいのですが、*で指定するのではなく、個別に複数指定したいのです。+を使うと結合されてしまうし、,もだめ。;もだめ。 番号順に3、4、5、・・・となっているファイルの23、24、25だけをコピーして貼り付けたい場合、どうすればよいのでしょうか?

  • ログファイルを編集する方法はありませんか?

    cgiログファイルを読み出して下記の様に任意に行数を指定して入れ替える方法を教えていただければと思います。 何分、素人なので、その辺りを踏まえて教えていただければ助かります。また、サンプルの様なものがあればご参照お願い致しますm(__)m [例] 行数・内容 1************** 2////////////// 3++++++++++++++ 4-------------- 上記の状態のログファイルがあるとし、任意の行数、(例えば)「1」と「4」を入れ替えたい場合 行数・内容 1-------------- 2////////////// 3++++++++++++++ 4************** と保存しなおす様に出来ますでしょうか? 分かりにくい説明で申し訳ございません。よろしくお願い致します。

    • ベストアンサー
    • CGI
  • こういうソフトを探しています

    フォルダにあるファイル(5つ程度で それぞれ内容の異なるファイル)を開けることなく、 その中の内容の指定された行数だけ別ファイルに書き 出すようなソフトを知らないでしょうか? 一度Cで作ろうとしたのですが、 締め切りが迫って来た為、 今回はフリーソフトでと思って探しています。 どうかよろしくお願いします。

  • ログファイルの編集についてお聞きしたいのですが・・

    cgiログファイルを読み出して下記の様に任意に行数を指定して挿入する方法を教えていただければと思います。 何分、素人なので、その辺りを踏まえて教えていただければ助かります。また、サンプルの様なものがあればご参照お願い致しますm(__)m [例] 行数・内容 1************** 2////////////// 3++++++++++++++ 4-------------- 5============== 6############## 上記の状態のログファイルがあるとし、任意の行数(例えば)行数[5]を行数[2]に挿入した場合 [例] 行数・内容 1************** 2============== 3////////////// 4++++++++++++++ 5-------------- 6############## と保存しなおす様に出来ますでしょうか? 分かりにくい説明で申し訳ございません。よろしくお願い致します。 よろしくお願い致しますm(__)m

    • ベストアンサー
    • CGI
  • fortranでファイルから数値を読み取ることについての質問です。

    fortranでファイルから数値を読み取ることについての質問です。 次のような内容のファイルから数値を読み取る場合: 1 2 3 4 5 6 7 8 9 これはdoループを使って do i=1,n read(1,*)a[3*(i-1)+1],a[3*(i-1)+2],a[3*(i-1)+3] end do として、行数をn=3と指定すれば読み取れますが、 行数を指定しなくてはabortします。 行数を指定せずに、最後のデータまで自動的に読むようにするには どうすれば良いでしょうか?

  • 50万行のtxtファイルを行数指定で分割したい

    50万行レベルのテキストファイルがあります このファイルをVBAで行数を指定して3つのファイルに分割したいのですが可能でしょうか イメージとしては以下のような形になります ・一行目〜テキストボックス1で指定した行数 ・textbox1で指定した行数〜textbox2で指定した行数 ・textbox2で指定した行数〜最終行 どなたか教えて下さい よろしくお願いします

  • フォトショップCS5でレイヤー上に写真を開くには

    すみませんがフォトショップCS5に詳しいかた教えて下さい。 (1)複数の写真の一部を切り抜いて一枚のはがきを作成したい のですが指定したレイヤーにファイルを開くにはどうしたらよいでしょうか?? レイヤーを選択した状態でファイルを開くをすると別のタブに 新たに写真ファイルが開かれてしまいます。 あと、(1)の作業をするに、効率の良い方法があれば教えてください。

  • エクセル マクロ csvファイル統合

    あるソフトを用いて指定行数に分割した15のcsvファイルをそれぞれシート別にしてエクセルファイルに取り込みたいと考えています。 マクロを用いてこのような作業を行いたいのですが何方かご教授いただけませんでしょうか?

  • 初歩的過ぎますが、.htaccessの複数設定方法を教えてください。

    すみません、基本中の基本なのだと思いますが 調べても見つからないので宜しくお願いします。 .htaccessを使って、様々な設定があうかと思うのですが1つのディレクトリ内で複数指定する場合どうすればいいのでしょうか?? 例えば、ベーシック認証を行い、そのファイル内でもう1つリダイレクトを記述!また、もっともっと沢山設定を行う場合もあるかと思いますが、その場合なにか決まりがありますか。 設定ごとに改行しなければいけない??設定ごとに1行あけないといけない?といった決まりのようなものがありましたら、教えていただけないでしょうか?? 初心者な質問で申し訳ないですが 宜しくお願いいたします。

  • ファイル検索

    こんにちは。質問させてください。 あるフォルダ(ここでは$dir = "c:\\test\\file_data\\"とでもしておきます。)内に テキストファイルが複数存在するとします。 test1218.01.file1.txt test1218.10.file1.txt test1218.11.file1.txt test1219.01.file1.txt test1219.10.file1.txt test1219.11.file1.txt test1219.01.file2.txt test1219.10.file2.txt test1219.11.file2.txt 上記のようなファイル名のテキストファイルが存在したとします。 それでこのテキストファイルのうち、以下のファイルの内容を画面に表示したいと 考えています。 test1219.01.file1.txt test1219.10.file1.txt test1219.11.file1.txt 1219(今日の日付という意味), file1(一回目のファイルという意味)で 構成された上記のファイルを指定されたディレクトリ($dir)以下で 検索し上記のファイル名を取得し、また取得したファイルの中身を 表示するロジックを考えています。 ひとつのファイルを取得することはできたのですが、 複数となる(上記の場合は3つ当てはまることはわからないので 指定する日付などで取得ファイル数がかなりことなる)ため うまく書くことができません。 どなたかいいロジックなどをお持ちでしたら ぜひ伝授していただけたらと考えています。 どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう