• ベストアンサー

プログラムの記述のあるPHPファイルをHTML化

こんばんは。お世話になってます。 タイトルにあるように、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ファイルとして保存させるための流れをお教えいただければと思います。 お忙しいとは思いますが、宜しくお願い致します。。

  • PHP
  • 回答数3
  • ありがとう数6

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

  • ベストアンサー
回答No.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); と言った感じにすればファイルに書き出せます。

mayu_chap
質問者

お礼

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

mayu_chap
質問者

補足

izayoimizukiさんへ こんばんは。お世話になってます。 最初は戸惑いはあったものの、izayoimizukiさんからのアドバイスで、無事解決出来たことをご報告いたします。 順を追っての説明、イメージしやすかったです。ありがとう御座いました!

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

別の場所ですよね? わたしがよくやっているのは別のサーバーでwgetをつかって phpファイルをダウンロードしてくる方法です。 これであれば別サーバーのほうでPHPが稼働している必要はありません。 例) wget http://www.yahoo.co.jp -O test.htm

mayu_chap
質問者

お礼

yambejpさんへ こんばんは。前回に引続き、ご親切なアドバイスを有難う御座います! >別の場所ですよね? 私の説明が下手だったようで、すみません。 テンプレートとしてhtmlファイルを、プログラムファイルとしてPHPファイルを各々用意しておき、それをプログラムの実行と共にhtmlファイルにデータを書き込んでHTMLファイルとして保存させたいと考えています。 本なども色々とテンプレートを用いる場合、PEARやSMARTYなどで行えるところまでは知ってはいますが、今回はあくまでそれらモジュール?を使わずに行いたく悩んでいる次第です。 追伸:wgetなるもの、初めて知りました!手元の本にはwgetのことを一切触れてはいませんが、幾分視野が広がった気がします。有難う御座います!

回答No.1

2つ方法があると思います。 1つは出力したいHTMLを変数に格納しておいてそれをファイルに書き出す方法です。 $html="<html>~</html>";のような感じでしょうか。 この方法は過去に作ったPHPを大幅に書き換える必要がありまたエスケープが大変ですがオーバーヘッドは殆どありません。 もう1つはfile ("http://localhost/~");と言った感じでfileメソッドでHTTPのURIにアクセスしてHTMLを変数内に取得しファイルに書き出す方法です。 この方法は過去に作ったPHPを一切書き換える必要がありません。 ただしHTTPでアクセスする都合上オーバーヘッドが大きい事は覚悟してください。

mayu_chap
質問者

お礼

izayoimizukiさんへ はじめまして、こんばんは!早速のアドバイスを有難う御座います! 昨夜、アドバイスいただいた以降、アドバイスを元にイメージしながら色々と進めてはいるのですが、どれも上手く行かずで、もう少し具体的にお教えいただくことは出来ますでしょうか? 例えば、1の<html>タグ全体を変数に入れる場合、既に設置されているPHPファイルをどのタイミングで、どう代入するのか?等など・・。 2つのパターンをアドバイスいただき、とても感謝しているところではありますが、引続きアドバイスを頂戴出来れば嬉しいです。

mayu_chap
質問者

補足

説明不足なところもあると思い、再度こちらにて私が描いていることをお伝えします。 ~basic.php~ <html> <head> <title></title> </head> <body> <?php //DB接続 //データ呼び出し while($row = mysql_fetch_array($result)){  ・  ・ } ?> </body> </html> というPHPファイルを実行したとき、ブラウザにて取得出来る、見かけ上のソース?(ブラウザのメニューバーにある「表示」→「ソース」で取得出来るソース)をHTMLファイルとして保存(検索結果により複数のHTMLファイルを保存)したいと考えています。

関連するQ&A

  • PHPとSmartyを使い、データベースからのデータを表示したい。

    PHP・Smartyを使い、DBからの表示を行おうとしています。 基本的な作業だとは思うのですが、なかなかできないので、教えてください。 ソースコードです。 //////PHPのコード <?php require_once('Connections/dbconn_mylocal.php'); ?>//DBへの接続を行っている。ここは正常。 <?php $sql = 'SELECT * FROM c_movie'; $result = mysql_query($sql, $conn); while($row = mysql_fetch_array ($result)){ $movie = $row["movie_title"]; } $smarty->assign('movie', $movie); $smarty->display("test1120.tpl"); ?> /////////////////tplファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Smartyで表示する</title> </head> <body> ({foreach item='con' from=$movie}) ({$con}) ({/foreach}) </body> </html> よろしくお願いします!

    • ベストアンサー
    • PHP
  • htmlファイルにphpを記述したい

    初歩的な質問で申し訳ありませんが、 色々調べて見ましたが、解らなかったので質問させてください。 htmlのフレームを使いフレームのリンク先をhtmlファイルにして、 そのhtmlファイルにphpのコードも記述したいのですが、phpコードとして認識してくれません。 例)***.htmlファイル <frameset rows="100,*"> <frame src="title.html "name="logo"> </frameset> として、title.htmlファイルにphpコード記述しましたが、phpコードとして、認識してくれていないようです。。。 title.htmlの内容は <html> <head> <meta http-equiv="Content-type" content="text/html;charset=EUC-JP"> </head> <body> <center> <font size="16">****システム</font> <? echo "認識しない"; ?> </center> </body> </html> そもそもhtmlフレームを使い、htmlファイルにphpコードを、 記述することは出来ないのでしょうか? ※htmlフレームを使わずにhtmlファイルにphpコードを記述して、 認識することは確認しました。 どなたか教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでHTMLファイル置換 プログラムについて

    以下のプログラムを書きました。 あるHTMLファイルをテンプレートとし、 中に記述している置換文字列を動的に 表示させるというものです。 しかしなかなか表示されません。 どこがおかしいのでしょうか? --template.html-- <html><head><title>test</title></head> <body> 表題 他いろいろ <!-- data replace --> フッター いろいろ </body></html> --index.php-- $page_lines = File("template.html"); $all_lines=''; foreach( $page_lines as $line ){  $all_lines .= $line; } $str = "<div>出力用データいろいろ</div>"; print preg_replace(/<!-- data replace -->/,$str, $all_lines); 以上です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • HTMLファイルにPHPファイルを組み込むとエラー

    HTMLファイルの拡張子をPHPへ変更し(正常に見えることを確認した)そのPHPファイルへ別に作成したPHPファイルを追加ペーストしたのですが下記のエラーが出て困っています。別に作成したPHPファイルは、単独では正常に見えるので、何故エラーが出るのかご教示をお願いします。検索すると下記のエラーと同じ内容が表示されたHPばかりでどうやって修正したら良いかわかりません。私としては、もともと作成したHTMLファイルにPHPを組み込めると時間的に楽なのですができないようなので仕方なくPHPへ変更してそれにコンテンツを追加しようとしています。PHPは、今回初めてなのでほとんど素人です。 Warning: include(magpierss-0.72/rss_fetch.inc) [function.include]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\popup\popup2.php on line 156 Warning: include() [function.include]: Failed opening 'magpierss-0.72/rss_fetch.inc' for inclusion (include_path='.;c:/php/includes;C:/php/PEAR;c:/php/popup/includes') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\popup\popup2.php on line 156 Fatal error: Call to undefined function fetch_rss() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\popup\popup2.php on line 258 156行の文は include('magpierss-0.72/rss_fetch.inc'); です。 258行は function getRss($rssInfo) { $feed = fetch_rss($rssInfo['url']); ファイルが開けない?とうエラーは、単独では表示されなかった。何か使い方が悪いのかその辺も含めて教えていただけたらと思い投稿させていただきました。検索で調べましたが、同じエラー内容が表示されたHPがたくさんあり根本的な単純な間違いかもしれませんが宜しくお願いします。

    • 締切済み
    • PHP
  • HTML

    phpファイルからHTMLの書き出しについての質問です できるとこまでやってみたんですが途中にmysqlから取り出したデータを処理するためのwhileなどのphpがあるためうまくいきませんでした 途中にphpがある場合、どうすればうまくいきますか? PHP Version 5.2.5です ファイルロックはこんな感じでしょうか? よろしくお願いします $html = <<<END_OF_DATA <html> <head> <title>タイトル</title> </head> <body> <table> <?php while ($table = mysql_fetch_assoc($recordSet)) { ?> <tr> <td>{$table['id']}</td> <td><?php print(htmlspecialchars($table['name'], ENT_QUOTES)); ?></td> </tr> <?php } mysql_free_result($recordSet) or die("MySQL切断に失敗しました。"); mysql_close($link) or die("MySQL切断に失敗しました。"); ?> </table> </body> </html> END_OF_DATA; $filename = 'index.html'; $fp = fopen($filename,'w'); stream_set_write_buffer($fp,0); flock($fp, LOCK_EX); fwrite($fp, $html); flock($fp, LOCK_UN); fclose($fp);

    • ベストアンサー
    • PHP
  • PHPからCプログラムを実行して実行結果をHTML上に表示

    PHP初心者です。PHPからCプログラムを実行して実行結果をHTML上に表示する方法が分からなく困っています。 Cプログラムの中身は、 #include <stdio.h> int main(){ printf("Hello."); } です。 phpの中身は、 <HTML> <HEAD><TITLE>Cプログラム呼び出し</TITLE></HEAD> <BODY> <?php $cmd = "test.exe"; $a = exec($cmd); echo $a; ?> </BODY> </HTML> としており、調べてみるとexec()関数で外部プログラムを実行すると書いてあったのでこのように作成しました。

    • ベストアンサー
    • PHP
  • HTMLからPHP呼び出し【ギブアップ】

    HTMLからPHPを呼び出す方法について、色々調べて実施してみましたが、 どうも動作しません。ギブアップ状態なので、皆様のお知恵をお借りできたらと 思い質問することにしました。 現在の状況。 (1)Apache設定  「.htaccess」ファイルに★印行部分を定義。  ★AddType application/x-httpd-php php html  この定義以外にも色々試しに定義を変えています。  例えば、AddType application/x-httpd-php .php .htmlなど「.」を付与したり。 (2)HTML  <html>  <head>テスト</head>  <body>  <?php include "aaa.php"; ?>  </body>  </html> (3)PHP  aaa.phpは、単体で動作します。  aaa.phpは、HTMLファイルと同ディレクトリにあります。   上記の設定でHTMLを表示すると空白表示されます。 調べた結果、上記で動作すると思ってるのですが、何が問題なのでしょうか? 宜しくお願いします。 また、情報不足していましたら、ご指摘ください。追加します。

    • ベストアンサー
    • HTML
  • PHPプログラムの実行

    だいぶ古いバージョンですが、CDロムからXAMPP(xampp-win32-1.6.4-installer.exe)をインストールし、簡単なPHPスクリプトを書いて実行しましたが、HTML で表記したヘッダー部分以外は、ブラウザ画面に何も現れません。 スクリプトは次のようなもので、XAMPPのhtdocsフォルダー にsample.html としてセーブしてあります。 <html> <head> <title> sample of PHP program </title> </head> <body> <h1> sample </h1> <?php echo "Welcome"; ?> </body> Apache サーバーはちゃんと走ってます。なぜ何も表示されないのでしょうか? 何かコンフィグレーションファイルのようなものを編集する必要があるのでしょうか?詳しい方、どうぞ教えてください。お願いします。

    • ベストアンサー
    • PHP
  • HTMLファイルの書き換え

    こんにちは。お世話になっております。 ココのところ、質問ばかりで恐縮ですが・・タイトルにあるようにPHPにて既存のHTMLファイル(同じサーバー内)を変更する場合、どのようなソースになるのでしょうか? <html> <head> <title></title> </head> <body> <!--category1start--> <!--category1end--> <!--category2start--> <!--category2end--> </body> </html> 以上のような構成のHTMLファイルがあり、PHPにて<title></title>内の文字列と、コメントアウトしてあるcategory1とcategory2の、各startからendの間を変更したいと考えてます。 今日も朝からずっと調べながら、正規表現を使いファイル全体のソースを変数に格納。確認のため変数を表示。といったことを繰り返しているのですが、正規表現の理解が乏しく、思ったような結果が得られずにいます。 お恥ずかしい質問とは思いますが、ご指導頂戴出来れば幸いです。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPでファイルアップ

    はじめまして。 PHPを勉強し始めたとこなのですが、いきなり分かりません。 ファイルの中身を見ないで単純なアップが目的です。 ファイルの名前をファイルの名前: html :uploader.html PHP:p141php としています。 アップしたいフォルダは./upフォルダです。 本を見て作っているのですが、何処が間違えているのかもわかません。 何方か教えて下さい。 ソースは uploader.htmlが <!-- saved from url=(0022)http://internet.e-mail --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>アップロード</title> </head><body> <form method="post" enctype="multipart/form-data" action="p141.php"> <input type="file" name="upfile"> <input type="submit" value="uploadする"> </form> </body> </html> で p141.phpが <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>練習</title> </head> <body> <p> file uploader </p> <?php $updir = "./up/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); } else { print("<b>" .$filename. "</b> uploaded!"); } ?> </body> </html> です。 PHPがいけるところのサーバーを借りているので細かい設定や 何のソフトを使っているかは分かりません。 OSはLIUNXです。 開発環境はOSがWin2kで秀丸を使って記述しています。

    • ベストアンサー
    • PHP

専門家に質問してみよう