- ベストアンサー
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 などを 表示したいと、いうことです。 全く別の発想でも構いません、よい案などあればご紹介ください。 よろしくお願いいたします。
- みんなの回答 (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" と記述しておく必要あります。
その他の回答 (3)
- tols
- ベストアンサー率46% (7/15)
HTMLのbaseタグを使ってみてはどうでしょうか? 参考URLを見てみて下さい。
お礼
tolsさん、今晩は。 貴重なレスをありがとうございます。 aaa/index.htmなどを作成するときに フォルダ構造さえ意識していない者にとって、 ハードルが高そうです。 どうもありがとうございました。
- superside0
- ベストアンサー率64% (461/711)
include_once前に出力バッファリングを宣言し、それを変数に取り出してからパスの置換をすればよいのでは。 ob_start() ob_get_contents() ob_end_clean()
お礼
superside0さん、今晩は。 貴重なレスをありがとうございます。 いろいろと試してみています。 どうも、ありがとうございました。
- higekuman
- ベストアンサー率19% (195/979)
画像ファイルのアドレスを、相対アドレスではなく、絶対アドレスで書くというのはどうでしょうか?
補足
higekumanさん、早速レスありがとうございます。 >絶対アドレスで書くというのはどうでしょうか? /aaa/index.php /bbb/index.php などを書く人が、 同一フォルダの画像でないと、扱いが厳しいです。 すべてのフォルダ構造をコピーしていないような環境で、 各ページが書かれるものですので。 また、フォルダ構造について、ほとんど意識のない人が書くものですので。
お礼
little-mさん、今晩は。 返事が遅くなり申し訳ありません。 試していました。 ばっちりです。 どうもありがとうございました。