プロが教える店舗&オフィスのセキュリティ対策術

こんばんは。お世話になってます。
タイトルにあるように、PHPファイルをHTMLファイルとして別名で設置させるコードを考えているのですが、どのようにしたら良いのかが、全く分かりません。
例えば・・

~basic.php~
<html>
<head>
<title></title>
</head>
<body>
<?php
//DB接続
//データ呼び出し
while($row = mysql_fetch_array($result)){
 ・
 ・
}
?>
</body>
</html>

という基本となるphpファイルを設置しておき、問合せ結果をhtmlファイルとして別名で保存していきたいと考えているのですが、具体的にどのようなアルゴリズム?となるのでしょうか?

本を見ながら、PEARにも挑戦してみましたが、コマンドでインストールが完了したはずですが、本や多くのサイトで紹介されているように、C:/PHP/PEAR/HTML というディレクトリが確認できずに、PEARの利用は難しいのかな?と・・。

PEARのアドバイスも頂戴出来たら幸いですが、本題の通り、上記質問のようなPHPファイルを別名でのHTMLファイルとして保存させるための流れをお教えいただければと思います。

お忙しいとは思いますが、宜しくお願い致します。。

A 回答 (3件)

> 例えば、1の<html>タグ全体を変数に入れる場合・・・


現在のPHPがブラウザに対して送り出しているHTMLを全て確定したところを前から順に1つの変数に追加してゆく形に書き直してください。
最後にechoに与えれば今まで通りの出力になりますしfputsに与えればファイルとして書き出せます。

<html>
<head>
<title></title>
</head>
<body>
<?php
//DB接続
//データ呼び出し
while($row = mysql_fetch_array($result)){
 ・
 ・
}
?>
</body>
</html>



<?php
$html="<html><head><title></title></head><body>";
//DB接続
//データ呼び出し
while($row = mysql_fetch_array($result)){
 ・
 ・
}
$html&="</body></html>";
echo $html;
?>

と言った感じですね。
このechoの部分を
$fp=fopen("ファイル名","w");
fputs($fp,$html);
fclose($fp);
と言った感じにすればファイルに書き出せます。

この回答への補足

izayoimizukiさんへ

こんばんは。お世話になってます。
最初は戸惑いはあったものの、izayoimizukiさんからのアドバイスで、無事解決出来たことをご報告いたします。

順を追っての説明、イメージしやすかったです。ありがとう御座いました!

補足日時:2008/06/10 21:57
    • good
    • 0
この回答へのお礼

izayoimizukiさんへ

こんばんは。早速のお返事をありがとう御座います!
これから試してみます!
取り急ぎお礼まで・・。改めてご報告いたします!
ありがとう御座いました!

お礼日時:2008/06/10 00:26

別の場所ですよね?



わたしがよくやっているのは別のサーバーでwgetをつかって
phpファイルをダウンロードしてくる方法です。
これであれば別サーバーのほうでPHPが稼働している必要はありません。

例)
wget http://www.yahoo.co.jp -O test.htm
    • good
    • 0
この回答へのお礼

yambejpさんへ

こんばんは。前回に引続き、ご親切なアドバイスを有難う御座います!


>別の場所ですよね?

私の説明が下手だったようで、すみません。
テンプレートとしてhtmlファイルを、プログラムファイルとしてPHPファイルを各々用意しておき、それをプログラムの実行と共にhtmlファイルにデータを書き込んでHTMLファイルとして保存させたいと考えています。

本なども色々とテンプレートを用いる場合、PEARやSMARTYなどで行えるところまでは知ってはいますが、今回はあくまでそれらモジュール?を使わずに行いたく悩んでいる次第です。

追伸:wgetなるもの、初めて知りました!手元の本にはwgetのことを一切触れてはいませんが、幾分視野が広がった気がします。有難う御座います!

お礼日時:2008/06/09 20:02

2つ方法があると思います。



1つは出力したいHTMLを変数に格納しておいてそれをファイルに書き出す方法です。
$html="<html>~</html>";のような感じでしょうか。
この方法は過去に作ったPHPを大幅に書き換える必要がありまたエスケープが大変ですがオーバーヘッドは殆どありません。

もう1つはfile ("http://localhost/~");と言った感じでfileメソッドでHTTPのURIにアクセスしてHTMLを変数内に取得しファイルに書き出す方法です。
この方法は過去に作ったPHPを一切書き換える必要がありません。
ただしHTTPでアクセスする都合上オーバーヘッドが大きい事は覚悟してください。

この回答への補足

説明不足なところもあると思い、再度こちらにて私が描いていることをお伝えします。

~basic.php~
<html>
<head>
<title></title>
</head>
<body>
<?php
//DB接続
//データ呼び出し
while($row = mysql_fetch_array($result)){
 ・
 ・
}
?>
</body>
</html>

というPHPファイルを実行したとき、ブラウザにて取得出来る、見かけ上のソース?(ブラウザのメニューバーにある「表示」→「ソース」で取得出来るソース)をHTMLファイルとして保存(検索結果により複数のHTMLファイルを保存)したいと考えています。

補足日時:2008/06/09 20:03
    • good
    • 0
この回答へのお礼

izayoimizukiさんへ

はじめまして、こんばんは!早速のアドバイスを有難う御座います!
昨夜、アドバイスいただいた以降、アドバイスを元にイメージしながら色々と進めてはいるのですが、どれも上手く行かずで、もう少し具体的にお教えいただくことは出来ますでしょうか?

例えば、1の<html>タグ全体を変数に入れる場合、既に設置されているPHPファイルをどのタイミングで、どう代入するのか?等など・・。

2つのパターンをアドバイスいただき、とても感謝しているところではありますが、引続きアドバイスを頂戴出来れば嬉しいです。

お礼日時:2008/06/09 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!