• ベストアンサー

htmlファイルをincludeして、文字列変換して表示

お世話になります。 /index.php  /aaa/index.phh    /aaa01.jpg    /aaa02.jpg  /bbb/index.php    /bbb01.jpg    /bbb02.jpg    /bbb03.jpg と、いうようなフォルダ構造でホームページを作成して、 /index.php で <body>  ヘッダだよ<br>  include_once("aaa/index.php");  フッタだよ<br> </body> とすると、aaa/index.php に書かれてある文字を表示することができます。 しかし、画像 aaa01.jpgなどは、/以下になく、/aaa/以下にあるため、 表示されません。 そこで、include_onceと同時に <img src="aaa01.jpg" となっているところを、 <img src="aaa/aaa01.jpg" と、書き換えられないものかと考えた次第です。 やりたいことは、同じヘッダフッタを持ったページで、その中に フレームタグなどを使用することなく、 別々のフォルダに別々に作成したページ、/aaa/index.php /bbb/index.php などを 表示したいと、いうことです。 全く別の発想でも構いません、よい案などあればご紹介ください。 よろしくお願いいたします。

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

  • ベストアンサー
  • little-m
  • ベストアンサー率44% (45/102)
回答No.4

タイトルの通り、include_once 部分が php でなく html であるなら <?php include_once("aaa/index.php"); ?> 上記の部分を、以下のような感じで出来るのでは <?php $html = implode('', file('aaa/index.html')); $html = str_replace('img src="./', 'img src="./aaa/', $html); print($html); ?> ※ただし、<img src="aaa01.jpg" は <img src="./aaa01.jpg" と記述しておく必要あります。

rqg2010
質問者

お礼

little-mさん、今晩は。 返事が遅くなり申し訳ありません。 試していました。 ばっちりです。 どうもありがとうございました。

その他の回答 (3)

  • tols
  • ベストアンサー率46% (7/15)
回答No.3

HTMLのbaseタグを使ってみてはどうでしょうか? 参考URLを見てみて下さい。

参考URL:
http://www.htmq.com/html/base.shtml
rqg2010
質問者

お礼

tolsさん、今晩は。 貴重なレスをありがとうございます。 aaa/index.htmなどを作成するときに フォルダ構造さえ意識していない者にとって、 ハードルが高そうです。 どうもありがとうございました。

回答No.2

include_once前に出力バッファリングを宣言し、それを変数に取り出してからパスの置換をすればよいのでは。 ob_start() ob_get_contents() ob_end_clean()

rqg2010
質問者

お礼

superside0さん、今晩は。 貴重なレスをありがとうございます。 いろいろと試してみています。 どうも、ありがとうございました。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

画像ファイルのアドレスを、相対アドレスではなく、絶対アドレスで書くというのはどうでしょうか?

rqg2010
質問者

補足

higekumanさん、早速レスありがとうございます。 >絶対アドレスで書くというのはどうでしょうか? /aaa/index.php /bbb/index.php などを書く人が、 同一フォルダの画像でないと、扱いが厳しいです。 すべてのフォルダ構造をコピーしていないような環境で、 各ページが書かれるものですので。 また、フォルダ構造について、ほとんど意識のない人が書くものですので。

関連するQ&A