• ベストアンサー

phpによる遠まわしな処理をあえてしたいのですが

全部、main.phpで解決すればいいことなのですが、 こんなことが可能かどうか質問させてください。 ページmain.phpにアクセスしたときに、 bg.phpが実行されて、 そのbg.phpからの命令でmain.phpの背景色が変更される、 (main.phpはユーザーが目にするページで、bg.phpは処理だけを行うページです) こんなことをしようとすると、すでに最初に main.phpが読まれてしまっているので、あとから、 bg.phpがbodyのbgcolorを変更しようとパラメータを送ってきたところで、 main.phpは既に読まれているので、再読み込みとかしないと駄目ですよね。 どうやれば外部php(bg.php)経由で、 最初に既に読み込まれているmain.phpの背景のカラーを変えることができるのでしょうか? 無駄な遠回りな処理だとはわかっていますが、考え方を教えてください。

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

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

> main.phpは既に読まれているので、再読み込みとかしないと駄目ですよね。 main.php がロードされると同時に画面に出力されるわけではありません。 出力する内容を変数に格納しておいて、bg.php でreplaceしてから出力すればいいのではないでしょうか? bg.php ---------- $output = preg_replace(検索表現,置換表現,$output); // 背景色に該当するスタイルを置換する(外部CSSを新たに読み込むなり、CSSそのものを取り替えるなりお好みで) ---------- main.php ---------- $output = '<html>...</html>'; include 'bg.php'; echo $output; ----------

jazzjazzja
質問者

お礼

ありがとうございました。 仕組みが非常によく分かり、うまくcssと連携がとることができました。分かり易い解説に感謝しております。 ありがとうございました。

その他の回答 (1)

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

なにか勘違いがあるのだと思いますが・・・ 背景を変えるような処理は、cssなどに任せます。 どうしてもmain.phpで処理をおわらせたあとにbg.phpで背景を 変えたいのであれば、main.phpをob_get_contentsなどで 貯めておいて、そのheadにbg.phpでcssファイルを指定してやるのが ベターです。 じかにhtmlに書くのであればbodyタグをサーチしてbgcolorを 書き換えるのでしょうけど、いまそういうのは時代遅れです

jazzjazzja
質問者

お礼

ありがとうございます。 紛らわしい分かりにくい質問ですみませんでした。 おっしゃられる方法でできそうです。 ありがとうございました。

関連するQ&A

専門家に質問してみよう