複数のPHPファイルを読み込む方法とレイアウト表示の記述

このQ&Aのポイント
  • 初心者向けに、複数のPHPファイルを読み込む方法とレイアウト表示の記述方法を解説します。
  • index.phpにはheader.php、contents1.php、fooder.phpを順番に読み込むことで、希望のレイアウトを実現できます。
  • また、index2.phpではheader.phpを一番上に読み込み、その下にcontents1.phpとcontents2.phpを横並びさせ、最後にfooder.phpを表示するというレイアウトを実現できます。
回答を見る
  • ベストアンサー

複数のPHPファイルを読み込むには?

例えば、header.php、contents1.php、contents2.php、fooder.phpという4つのphpファイルがあったとします。 それをindex.phpに、上からheader.php、contents1.php、fooder.phpの順で読み込ませてレイアウト表示したいと思います。 また、index2.phpには一番上にheader.phpを、その下にcontents1.phpとcontents2.phpを横並びさせ、その下にfooder.phpを表示されるというレイアウトで読み込みたいと思っています。 そうした場合に、index.phpとindex2.phpには、どういうふうに記述すれば、上記レイアウトで読み込むことが可能でしょうか。 初心者で、こんな質問、申し訳ありませんが、教えて頂けますと助かります。 よろしくお願い致します。

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

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

  • ベストアンサー
回答No.2

phpファイルを読み込むには <?php require_once("header.php"); ?> (他にも読み込み方はあります。 表示の方ですがHTMLとCSSは理解できますでしょうか? index.php <html> <head> </head> <body> <div id="wrap"> <div id="header"> <?php require_once("header.php"); ?> </div> <div id="contents1"> <?php require_once("contents1.php"); ?> </div> <div id="footer"> <?php require_once("footer.php"); ?> </div> </div> </body> </html> index2.php <html> <head> </head> <body> <div id="wrap"> <div id="header"> <?php require_once("header.php"); ?> </div> <div id="contents1"> <?php require_once("contents1.php"); ?> </div> <div id="contents2"> <?php require_once("contents2.php"); ?> </div> <br clear="all" /> <div id="footer"> <?php require_once("footer.php"); ?> </div> </div> </body> </html> CSSの方はそちらで・・・ contents1にfloat:left;をかければよいかと?

sakurakou
質問者

お礼

いろいろと試しましたが、どうも無理なようでしたので、他の方法を考えようと思います。 単純に、HTMLタグとCSSで作成したコンテンツでしたら、教えて頂いた方法でレイアウト表示できるようでしたので、今後は別のところで教えて頂いた方法を試したいと思います。 ありがとうございました。

sakurakou
質問者

補足

親切なご回答をありがとうございます。 このやり方で、やったのですが、これでやると、一番上のヘッダー部分は正常に表示されるのですが、その下のコンテンツ部分が以下のようなエラー表示になり、その下にあるはずのフッダー部分も表示されません。 Warning: require_once(../require.php) [function.require-once]: failed to open stream: No such file or directory in /home/users/2/lolipop.jp-dp04239225/web/(contents1.phpの保存先までのパス)/contents1.php on line 25 Fatal error: require_once() [function.require]: Failed opening required '../require.php' (include_path='.:/usr/local/php5.2/php') in /home/users/2/lolipop.jp-dp04239225/web/(contents1.phpの保存先までのパス)/contents.php on line 25 コンテンツのPHPファイルがそれこそ、PHPとデーターベース、Smartyを利用した、ショッピングカートの商品一覧なのですが、それが関係しているのでしょうか・・・? HTMLとCSSは理解しているつもりですが、Smartyについては、よくわかりません。。 対処法が分からず、途方にくれています。 phpバージョンの変更やpnp.iniの設定が関係あるのでしょうか・・・? お分かりになる方、いらっしゃいませんか?

その他の回答 (2)

回答No.3

そのような場合は、テンプレートエンジンを使う場合が多い。 PHPのテンプレートエンジンということで、Smarty を使うと、目的にはそうことができるはず

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

単純にincludeもしくはrequireでどうでしょう?

参考URL:
http://www.php.net/manual/ja/function.include.php

関連するQ&A

  • PHPで?が消えない現象が起きます。

    PHPで?が消えない現象が起きます。 index.phpにheader.phpを <?php include(header.php); ?> のようにincludeすると header部分の記述が始まる直前に?が表示されます。 header部分がおかしいのかなと思って "aaa"とだけ記述してみても同じように"?aaa"と表示されてしまいます。 余分な?の文字も無いですし、文字コードも統一しています。 基本的なことを見落としているのかもしれません・・・。 どうかお助けくださいm(_ _)m

    • ベストアンサー
    • PHP
  • PHPファイルをincludeしてHTML表示する

    お世話になります。 PHP含めプログラム初心者の者です。 どうか知恵をお貸しください。 現在制作しているHTMLサイトがあります。レイアウトはCSSです。 そのうちのひとつのコンテンツのブログページをサイト内WordPressで更新できるようにしたいと考えています。本来なら全てのページをWordPress化したほうがいいのでしょうが、新たにまたいろいろ記述する時間がないもので、とりあえずはblog.htmlなページのコンテンツ表示領域にWordPressで作ったindex.phpが表示されたらいいなと考えております。 ネットでいろいろ調べた結果、「phpファイルをincludeする」という方法によって、それをhtmlファイルで表示する方法があるようです。そこで質問なのですが、具体的にどのようにソースを記述すればそれは可能になるのでしょうか。 (1).htaccessに「AddType application/x-httpd-php .html」と記述する。 (2)表示したいHTML部分に「include(dirname(__FILE__).'/index.php');」と記述する。 とありましたがそれだけではできませんでした。具体的にそうしればいいか教えていただけないでしょうか。(htmlの拡張子をshtmlにするとかいう情報もありましたが定かではありません。)PHPに関しては本当に初心者な者で、変な質問をしているかもしれませんがどうかよろしくお願い致します。 ※参考にした情報ソースは下記です。 http://www.yusk.org/memo/php-memo/php_include_001.html ※HTMLソースは下記です。 <body> <div id="header"> ~略~ </div> <div id="contens"> <div id="leftmenu"> ~略~ </div> <div id="rightmenu"> <div id="rightbox-inside"> <div id="rightbox-inside-txt"> <p class="title">BLOG</p> <p class="standard"> include(dirname(__FILE__).'/index.php');(←ここにブログを表示させたい) </p> </div> <div style="clear:both;"></div> <div id="rightbox-buttom"> </div> </div> </div> </div> <div id="footer"> ~略~ </div>

    • ベストアンサー
    • PHP
  • htmlでphp(WordPress)を動かす

    WordPress外のindexhtmlにブログの更新情報を表示させたいと考えています。 そこで、<?php require_once('../wp/wp-blog-header.php'); ?>をhtml内に置き、 ブログのタイトルを取得する構文を書き、phpを動作させる為表示させる為に、 通常であれば、index.html→index.phpに変更する必要があります。 しかし拡張子が変わる事で、ファイルが別物扱いになりこれまでのSEO効果が無くなってしまうような事を聞いたのですが、そこは避けたいと考えています。 調べた方法として、 htmlでphpを動かすため、.htaccessに「AddType application/x-httpd-php .htm .html」を記述する方法があるようですが、サーバー内の全て.phpに変わり、サーバーにも負荷が掛かり、そもそも上記の記述はサーバーの制約で使えないようでした。 TOPページのindex.htmlのみ、phpが使用できる方法はないでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 簡単なPHPスクリプトを動的に生成したい

    PHPスクリプトを動的に生成することは可能でしょうか? たとえば [ index.php ] <html> <head></head> <body>  <?php   print file_get_contents('format.txt');  ?> </boy> </html> [ format.txt ] echo "aaa"; のようにスクリプトをformat.txtに記述しておき それをindex.phpを読み込んだときに展開するのです。 しかし、上記のスクリプトを実行するとecho "aaa";と表示され、 aaaとは表示してくれませんでした。 PHPでこういう動的にスクリプトを展開するようなことは出来ないのでしょうか?

    • ベストアンサー
    • PHP
  • ファイルの配置について(Smarty使用)

    こんばんは。 いつもお世話になります。 Smartyを使用しているのですが、 ファイルの配置についてお知恵をお借りしたく思います。 ■前提1 %HOME%/BBB/index.tpl %HOME%/BBB/common/header.tpl %HOME%/BBB/infomation/infomation.tpl 各ファイルは上のように配置しています。 ■前提2 --- header.tplによる表示  --- --- メニュー.tplによる表示 --- 上のように、どのページにも、header.tplを使用して、 共通のヘッダページを表示しています。 ■前提3 各メニューへのリンクは、header.tplの内で、 <a href = "../infomation/infomation.php" > というようにリンクしています。 ■問題 http://www.AAA.co.jp/BBB/index.php へアクセスした場合、 header.php内のリンクが「../」となっているため、index.phpへのリンクが http://www.AAA.co.jp/index.php と、1つ下の階層へのリンクになってしまいます。 ■考えつく対策 対策として考えつくのは、 http://www.AAA.co.jp/BBB/index/index.php を用意して、「../」としても問題がないようにする。 上のように考えているのですが、出来るだけ、 http://www.AAA.co.jp/BBB/ へアクセスする事でindexページが表示されるようにしたいです。 マニュアルなどを深く読まずに作成しているため、 そもそも、Smartyの使い方として間違っているのかもしれませんが、 そちらを含めて、ご教授いただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP外部ファイルの画像呼び出しについて

    PHPを使ってメニュー等の共通部分を一括管理しようとしたのですが、 index.phpは <?php require("top.txt"); ?> で上手くいったのですが、ひとつ下の階層のファイルでは <?php require("../top.txt"); ?> と記述したのですが、テキストだけ読み込んで画像は表示されませんでした。 階層が変わった場合はどうしてしたら良いか教えて下さい。 PHP初心者でエラートラブルに対処できなくて困ってます。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpで外部ファイルを読み込んだ際のURLについて

    Webサイト全ページのヘッダーとサイドバー、フッターは同じ内容です。 そのため、Webサイトを更新するときの作業効率を考えて外部読み込みをしようと思っております。 以下の手順で、phpのincludeを使って、一応読みこむことはできました。 (1)「index.html」を「index.php」に拡張子を変更 (2)「index.php」の読みこませたい部分に次のように記述 <?php include('./header.html'); ?> (3)「header.html」を作成 以上の手順で、FFFTPでアップロードして、ブラウザで表示したら、読みこみに成功しておりました。 しかし、当然といえば当然なのですが、次ようにサイトのurlの拡張子がhtmlからphpに次ようになっておりました。※urlはダミーです。 http://www.sample777.com/index.php このままだと、全てのページのurlの拡張子がphpになってしまいます。 この場合、seoやユーザービリティ―などの観点から、何か問題はありますか? urlに表記されるphpの部分をhtmlのままにしたいのですが、何か方法はありますか?

    • ベストアンサー
    • PHP
  • PHPによるファイルのダウンロード

    初めまして最近ちょっとはまってしまっているので分る方がいましたらアドバイスお願いします。 PHPのheader関数を使ってブラウザのダイアログを表示させるファイルのダウンロードを実装した際に、ファイルサイズが大きいものをダウンロードしているとダウンロードが完了するまで他のアクセスが応答しなくなる場合があります。 基本的には $fp = fopen($filePath, "rb"); $contents = fread($fp, filesize($filePath)); fclose($fp); $len = strlen($contents); header("Content-type: application/octet-stream"); header('Content-disposition: inline; filename="' . $filename . '"'); header("Content-length: " . $len); echo $contents; というような一般的な書き方をしています。 ファイルのサイズ的には10MB前後です。 同じような現象を解決された方がいましたらアドバイス頂けると幸いです。

    • 締切済み
    • PHP
  • index.swfをPHPで読み込む

    <?php //User Agent 取得 $agent = $header[\"User-Agent\"] ; header(\"Location: /index.swf\"); exit; } ?> というPHPをくみましたがindex.swfをトップページで表示させることができません。 htmlに直接入れ込むのではなく、読み込み方式をとりたいのです。 なにか間違いがあるのでしょうか? お願いします。

    • 締切済み
    • PHP
  • 至急助けてくださいWordpressでPHPエラー

    つい先ほど、home.phpを追加して、新着情報用につくったのですが、それをindex.phpに読み込むためget_homeを記入しました。すると、 get_header() in /home/users/1/hippy.jp-futsal-ahr/web/ahr/index.php on line 11 と表示されるようになったため、急いでhome.phpを削除し、index.phpの方へ記述したコードも削除しました。しかしなぜかこの表示が消えません。 あと1時間後にはお客様の方へ自分のサイトを見せなければなりません。どなたか至急助けてください!

    • ベストアンサー
    • PHP

専門家に質問してみよう