PHPを使用してのファイルの大量コピーについて教えてください。 - PHPプロ!Q&A掲示板

1778

  • 0P

PHPを使用してのファイルの大量コピーについて教えてください。

質問日時 / 2009年1月13日 22:03    回答数 / 2件

Questioner:  marumomo1013  このエントリーをはてなブックマークに追加 

キーワード / PHP    ファイル    大量コピー   

 当方、PHP初心者です。大変申し訳ないのですが、下記内容について教えてください。
 テンプレートとして作ったファイル(**.html)を大量にコピーして、且つファイル内のタイトル名は(<title>~</title>の部分)外部ファイル(title.txt)から取得して、一つ一つそれを入れていき、約300個くらい用意したディレクトリ内に貼り付けていくスクリプトを考えているのですが、何か良い方法はありませんか?ご教授願います。
 
 完成形としては、約300個あるディレクトリにそれぞれ同じファイル名のファイルがあるが、開いたときのタイトルがそれぞれ違うようになればなのですが・・・。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01signal>>CODE $titles = file('title.txt'); <<CODE >>
┗A02phpkyuphpkyuと申します。 タイトルに関しては連想配列を

回答一覧

並び替え:

A01
answerersignal [1月13日 23:22]

  1. $titles = file('title.txt');

  1. $template = file_get_contents('**.html');

  1. $page = preg_replace('/<title><\/title>/is', "<title>{$title}</title>", $template);

  1. mkdir('/var/dir001');
  2. $fp = fopen('/var/dir001/index.html', 'w');
  3. fwrite($fp, $page);
  4. fclose($fp);

こんなのを組み合わせればできるはず

初心者だからと言って「教えてください」じゃなくて、
「こういう風に作ってみたのですがこうなってしまいます」
みたいに努力してるところをアピールしてください

もしアルゴリズムが考えられないなら300個手作業で作成してみては?

この意見に回答する

ツリーへ TOPへ

A02
answererphpkyu [1月14日 15:39]

phpkyuと申します。

タイトルに関しては連想配列を使い
title.inc等の設定ファイルに列挙

  1. $title['ディレクトリ名1'] = 'タイトル1';
  2. $title['ディレクトリ名2'] = 'タイトル2';

別でディレクトリ名(親ディレクトリのみ)を取得する関数を自分で定義して
関数の戻り値を変数に格納してtemplateファイル側で設定ファイルを読み込み
タイトル部分に<title><?=$title[$dirname] ?></title>としてディレクトリ名を連想配列のキーに設定して
やれば値が表示されます。
大量のファイルをコピーしたりするのであればfor文などで繰り返し処理をしてあげればOKです。
300個くらいなら一瞬でできますよ。
例えば
  1. <?php
  2.  
  3. $d = file('dir.txt');  //ディレクトリ名を列挙したファイル
  4. $cnt = count($d);   //要素の数をカウント
  5. $data = file_get_contents('index.php');   //ファイルの内容を変数に格納
  6. for($i = 0$i < $cnt$i++)    //繰り返し処理スタート
  7. {
  8.    $dirn = trim($d[$i]);
  9.     mkdir($dirn);    //ディレクトリ作成
  10.     $fp=fopen($dirn."/index.html""a")//ファイルの作成
  11.     fputs($fp$data);  //ファイルに内容をいれる
  12.     fclose($fp);    //ファイルを閉じる
  13.     $dirn = "";
  14. }
  15. exit;
  16.  
  17. ?>

適当に書いたのでエラーがでた時などの対処はいれていません。が、
たぶんこれで動くと思います。

たまに何万とファイル作ったりしているので。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)