質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

3185閲覧

htmlファイルでphpファイルをincludeさせたい

uzr1709

総合スコア34

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/12/23 18:10

webサイトを作成しております。
headerやfooterをphpで作成し、includeして使い回したいと思っています。

index.phpより、index.htmlの方が馴染みやすいと思いますので
phpファイルで作成する事は考えていません。
また、ページタイトルなど変数で管理したい為、headerやfooterはphpで作成したいと考えています。

環境はwindows OS、MAMPを使用しています。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width,initial-scale=1"> 6 <title></title> 7 <style> 8 header{background-color: pink;} 9 footer{background-color: gray;} 10 main{background-color: aqua;} 11 </style> 12</head> 13<body> 14 <?php include( $_SERVER['DOCUMENT_ROOT'] . 'header.php'); ?> 15 <?php include( dirname(__FILE__) . 'header.php'); ?> 16 <?php include("header.php"); ?> 17 18 <main> 19 mainの内容 20 </main> 21 22 <?php include( dirname(__FILE__) . 'footer.php'); ?> 23</body> 24</html>

PHP

1<header> 2 heaerの内容 3</header>

header、main、footerと分かりやすいように背景色をつけております。
ローカルでhttp://localhost/index.htmlにアクセスすると
mainの内容のみが表示され、
includeしている部分が全てコメントアウトされています。

<!--?php include( $_SERVER['DOCUMENT_ROOT'] . 'header.php'); ?--> <!--?php include( dirname(__FILE__) . 'header.php'); ?--> <!--?php include("header.php"); ?-->

includeの記述が悪いのかと思い複数で記述しましたがどれもうまくいきません。

MAMPのhttpd.confを見直していますが、
AddType application/x-httpd-php .phpを
AddType application/x-httpd-php .php .phtml .html .htmに変更するという方法も
「AddType application/x-httpd-php .php」が複数あり、どこを編集すればいいのか分かりません。
(現状、全てAddType application/x-httpd-php .php .phtml .html .htmに変更しています)

またindex.htmlと同じ階層に.htaccessを置いています。

AddType application/x-httpd-php .php .html AddType application/x-httpd-php-source .phps AddHandler application/x-httpd-php .php .html

ローカルでhttp://localhost/header.phpにアクセスするとheader.phpの内容は表示されます。
http://localhost/index.htmlでincludeがコメントアウトされてしまう原因と対処法を教えてください。

PHPファイルを直で扱う事に慣れていないので質問の仕方が悪かったらすみません。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

あまり好きな方法ではないですが、要件だけ見ると SSI でいけそうです。
Apache チュートリアル: Server Side Includes 入門

まぁ、php じゃなくなるし、個人的には要件見直してなんらかのフレームワークで対応するのがオススメなので参考まで。

投稿2018/12/23 23:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/12/24 02:49 編集

> index.phpより、index.htmlの方が馴染みやすいと思います メンテナンス性/トラブル時の切り分けはすごく悪化します。 理由がこれだけなら止めたほうがいいです。
退会済みユーザー

退会済みユーザー

2018/12/24 00:55

実現させる方法はなくもないけど、動機や必要性に乏しい分、こだわるだけ無駄な気がするって点で同意。
uzr1709

2018/12/24 02:32

>>te2jiさん コメントありがとうございます。 SSIやJavaScriptでのincludeは問題なく動くのですが、PHPの勉強をしたかったのでフレームワークで検討したいと思います。 現在、お勧めとされていたララベルの導入を考えているのですが、 SSL認証で躓き、インストールすらする事が出来ません。 (解決方法を調べているところです) 他に導入しやすいフレームワーク等ありましたら教えて頂けないでしょうか? >>m6uさん お勧めされない方法だというのは理解致しました。 ですが、既にお答え頂いているものへの同意だけでなく、出来れば他の方法の提案など頂けると嬉しいです。
退会済みユーザー

退会済みユーザー

2018/12/24 02:49

header / footer つけるだけなら、静的サイトジェネレータ使うんでなんとも^^; 質問変わっちゃってるんで、別でたててみては?
uzr1709

2018/12/24 12:27

>>m6uさん URLありがとうございます。 .htaccessも不慣れなのでこれから勉強し直したいと思います。 取っ掛かりが分からず突拍子もないところから始めているかもしれませんが…もう少し独学で頑張ってみたいと思います。 ありがとうございました。 >>te2jiさん コメント有難う御座います。 そうですね。 もう少し自分でインストール方法やフレームワークについて学んでみて、問題点とやりたい事が明確になったら改めて質問を立てさせて頂きたいと思います。 ありがとうございました。
退会済みユーザー

退会済みユーザー

2018/12/24 13:01

php読み込んで動的に反映させる情報がリアルタイム性を担保しなくても良ければ、静的サイトジェネレータ案もありですね。 なにかのアクセスランキングとかなら、1時間に1回の周期的動作で生成する、みたいな。 htmlとして作っておけば、アクセス数が嵩んでも動的生成要素がない分処理負荷もかかりにくいとか。
guest

0

ベストアンサー

phpはデフォルトでは.php拡張子のファイルでないと動作しません。
.html拡張子で動作させる設定は調べれば出てきますが、それなら.htaccessなど利用して全てindex.phpにアクセスを集めて拡張子自体表示させずurlによって利用するphpプログラムを振り分けた方が一般的です(teratailもそうなってます)
それかそのような仕組みがありviewをテンプレートエンジンで組み込まれているフレームワークを入れられた方が自然に共通部分includeできると思います。

投稿2018/12/23 21:34

編集2018/12/24 19:21
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/23 23:17

httpd.conf修正後にApache再起動してなかったら修正した情報は反映されないという前提はありますが、 あまり良く分かっていないうちから設定ファイルをいじるのはそもそもサーバー動作しなくなる原因になるので慎重になったほうがいいですね。
uzr1709

2018/12/24 02:28

コメントありがとうございます。 htmlファイルにphpを書き込む事自体が正しい文法では無いと説明を見ましたので、今やろうとしている方法は止める事にしました。 フレームワークの導入を考えているのですが(現状ララベルで考えています) インストール時にSSLの認証で躓き、インストールすら出来ずにおります。 フレームワークで調べて、お勧めとされていたのでララベルをと思ったのですが、 インストールのしやすさ、導入後の管理のしやすさなど、初心者でも入りやすいフレームワークがありましたら教えて頂けないでしょうか?
m.ts10806

2018/12/24 02:37

SSL認証というのがよくわかりません。ただ導入して使うだけなら必要な手順ではないと思います。 学習コストは違っても導入の手間はどれもほぼ似たり寄ったりですよ。
uzr1709

2018/12/24 12:24

xamppとComposerのインストールは終えたのですが、 ララベルをインストールしようとするとSSLで外部接続が出来ずダウンロード出来ない?みたいなエラーが出ていたのですが OSの再起動やxamppの再起動などを繰り返しているうちにエラー内容が変わりました…。 もう少し独学でやってみて、躓く部分が明確になったら改めて質問を立てたりと思います。 有難う御座いました。
m.ts10806

2018/12/24 19:29

要件が違ってきてますね 別途回答でMAMPと書いてますがMAC環境でXAMPPはまた色々と面倒みたいです。対応方法は調べれば出てきますし最近回答もしましたので見ていただくとして、composerの方もこれはphpの設定で解決できますね。「composer ssl」で検索してすぐ出てきます。
guest

0

環境をMAMPを削除し、xamppをインストールしたところ、
ローカル環境ではincludeしたPHPファイルが表示されました。

ですが、同じファイルをwebサーバーに上げたところ、
include部分がコメントアウトされてしまい、思うような挙動にはなりませんでした。
<?php include("header.php"); ?>のみ表示され、他はエラーで表示されない)
htmlにphpコードを書き込む事が正しい文法では無いようなのでこの方法は止める事にし、問題も解決にさせて頂きます。

回答を頂き有難う御座いました。

投稿2018/12/24 12:30

uzr1709

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問