- ベストアンサー
全てのhtmlファイルに文字列を付加する
phpを始めたばかりの初心者です。 require、includeを用いると、外部ファイルを表示できることまでわかりました。 あるサーバの、あるフォルダにあるhtmlファイルををブラウザで表示すると、そのhtmlファイルの特定の位置に外部ファイルが自動的に書き込まれ表示されるようにするなんてことできないでしょうか。 よろしくご教示お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
可能です。下に簡単なサンプルスクリプトを示します。 表示すべきhtmlをtest.php?fname=hogehoge.html として変数として渡すこととします。 追加すべき外部テキストデータをaddstr.txtに書いておきます。 下記スクリプトではbodyタグのすぐ後ろにaddstr.txtの内容を書き込んでいます(無料レンタルサーバ等で広告の挿入がよくありますよね)。 <?php /* test.php */ $html = file_get_contents($_GET["fname"]);//元htmlを読込み $addfname = "addstr.txt"; $addstr = file_get_contents($addfname);//挿入すべきテキストを読込み echo preg_replace("/(<body[^>]?+>)/i","$1\n".$addstr,$html);// 正規表現でボディタグのすぐ後ろに取得した$addstrを挿入し、出力 ?> こんな感じです。正規表現で挿入部分を変える事が出来ます。 なお、hogehoge.htmlというURLでそのまま表示させたい場合は、apacheのmod_rewrite機能を使えばURLをapacheが自動的に変換してくれます(表示上は静的URL)。 /test/hogehoge.html => /test.php?fname=hogehoge.html RewriteEngine on RewriteRule ^/test/([0-9A-Za-z)]+)\.html$ /test.php?fname=$1 [L] 参考まで。
その他の回答 (1)
- moon_night
- ベストアンサー率32% (598/1831)
HTMLファイルに埋め込む場合は、SSIを使用すれば出来ます。 http://www.tohoho-web.com/wwwssi.htm PHPを使う場合、.htaccessで.htmlファイルをPHPとして動作できることが必要です。 http://neta.ywcafe.net/000372.html http://sozaifan.exblog.jp/pg/blog.asp?eid=a0001243&iid=&acv=&dif=&opt=2&srl=916053&dte=2004-08-24+09%3A53%3A00.000 http://phpnet.blog91.fc2.com/blog-entry-8.html
お礼
taketan_mydns_jpさん、レスありがとうございます。 また、お礼が大変遅くなり申し訳ありません。 いろいろと試してみましたが、私の現在の力量ですとわからないことが多くありすぎまして、まだ、時間かかりそうなのでとりあえずお礼まで。 また、後日質問させていただくこともあるかと思います。 そのときにはまたよろしくお願いいたします。