2012-08-09 7 views
23

私は、ナビゲーションバー、画像、および私のウェブサイトのすべてのページに含める見出しを持っているので、このコードを複数のページで参照するためにphpインクルードを使用したいと考えていました。しかし、私は文法が間違っているかもしれないと思います。なぜなら、読み込んだら何も描画していないからです。ここではいくつかのコードスニペットは、次のとおりです。HTMLにはPHPが含まれていますか?

<!-- sample page --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html> 
<head> 
<?php include ('headings.php'); ?> 
</head> 
<body> 
<?php include ('navbar.php'); ?> 
<?php include ('image.php'); ?> 
</body> 
</html> 

navbar.php

助けるため
<?php 

    echo '<ul id="nav"> 
     <li> 
      <a href="Home.html">Home</a> 
     </li> 
     <li> 
      <a>About Me</a> 
      <ul> 
       <li> 
        <a href="Career.html">Career</a> 
       </li> 
       <li> 
        <a href="Coding.html">Coding</a> 
       </li> 
       <li> 
        <a href="Personal.html">Personal</a> 
       </li> 
      </ul> 
     </li> 
     <li> 
      <a href="Travels.html">Travel</a> 
     </li> 
     <li> 
      <a href="Contact.html">Contact</a> 
     </li> 
    </ul>'; 

    ?> 

ありがとう!

+6

これをPHPタグに入れて、 'echo'を使う理由はありません。たとえそれが生のHTMLであっても含めることができます。 **編集**:それは、あなたのコードは正常に見えると述べた。ソースを表示しようとしましたが、OPに投稿できますか? **編集**:おそらく、あなたのサーバーにPHPがインストールされていないため、ブラウザはPHPタグを通常のHTMLタグ(何も表示されない)としてレンダリングします。 – h2ooooooo

+0

+1とbodyタグの場合と同じように+1 – Waygood

+0

代わりにテンプレートエンジンを検討するとよいでしょう。例として、Smarty、Twig、またはDwooをチェックしてください。そこにはさらに多くのトンがあります。 – Crontab

答えて

23

拡張子が.phpのファイルにはphpコードを使用できます(サーバー設定にotherが定義されていない場合)。

ちょうどあなたが別の形式のファイルにphpコード処理を許可したい場合は、あなたがそれを行うには、2つのオプションがあり*.html

*.phpから

あなたのファイルの名前を変更:

1)を許可するようにhttpd.confを変更サーバー上のすべてのプロジェクトに対して、以下を追加します。

AddHandler application/x-httpd-php .htm .html 

2)作成あなたは以下の設定を追加することで、あなたのhttpd.conf.htaccessファイルの使用を許可する必要がある第二の選択肢については

<Files /> 
    AddType application/x-httpd-php .html 
</Files> 

:を使用して、別のプロジェクトのトップディレクトリにあるファイル

AllowOverride All 
AccessFileName .htaccess 

それがために正しいです* Apache HTTP Server

+8

False。サーバがPHP拡張機能を扱うように設定されている限り、** ANY **拡張子(つまり、 '.js'、' .css'、 '.html'など)のファイルにPHPコードを含めることができます。 )。 – Matt

+0

PHPを他の拡張子を持つファイルで使用することもできます。 – jprofitt

+0

実際には、どこでもPHPを使用できます。 – Vatev

9

PHPファイル内に情報をエコーする必要はありません。 PHP includeは自動的にそのファイル内にHTMLを含みます。

.phpという拡張子のインデックスファイルを実際に使用していることを確認してください。.htmlはphpインクルードでは機能しません。 (サーバーに.htmlファイルを扱うように指示しない限り)

パスが正しく設定されていることを確認してください。あなたの説明から、header.php/navbar.php/image.phpファイルをルートディレクトリに置く必要があります。 だからあなたのルートディレクトリは次のようになります。

index.php
navbar.php
image.php
header.php

これらのPHPファイルは/includes/と呼ばれるフォルダにあるそれ以外の場合、それはそうのようになります。

<?php include ('includes/headings.php'); ?>

0

ファースト:何他は言った。 echo文は忘れて、普通のHTMLファイルとしてnavbar.phpを書いてください。

第2:あなたのインクルードパスがおそらく乱されています。あなたが現在のファイルと同じディレクトリにあるファイルを含めることを確認するには、__DIR__を使用します。

include __DIR__.'/navbar.php'; // PHP 5.3 and later 
include dirname(__FILE__).'/navbar.php'; // PHP 5.2 
4

てみてください、いくつかのデバッグ情報を取得するには、ファイル・パスは、たとえば、間違っている可能性があります。

は、これら二つのことを試してください: - :あなたが得るすべての問題があるので、もし

<?php error_reporting(E_ALL);?> 

これは、ページ内のすべてのエラー/警告/通知を印刷します はあなたのサンプル・ページの最上部に次の行を追加します。また、変更可能な空白ページの代わりに

それを説明するテキストメッセージは、(含める)これはFATAL ERRをスローします()

<?php require ('headings.php'); ?> 
<?php require ('navbar.php'); ?> 
<?php require ('image.php'); ?> 

を必要としますまたはPHPが必要なページを読み込めなくなって、何が起こっているのかをよりよくトレースするのに役立ちます。

エラーメッセージが表示される場合はここに投稿してください。 ..

ここ
+0

ありがとうございますが、わかりました。私はこれが将来的に役立つだろうと確信しています! – sresht

1

は、htmlファイルにPHPコードを含めるようにステップのプロセスバイステップである(テスト済み)

PHPが動作している場合と、ファイルにPHPスクリプトを使用するために残された唯一の一歩がある* .htmlのかに* .htm拡張も同様です。魔法の言葉は ".htaccess"です。詳細については、.htaccessのWikipediaの定義を参照してください。 Wikipediaによると、「Webサーバー構成の分散管理を可能にするディレクトリレベルの構成ファイル」です。

このような.htaccess設定ファイルを目的に使用できます。私たちの場合、WebサーバーはPHPファイルのようなHTMLファイルを解析する必要があります。

まず、空白のテキストファイルを作成し、「.htaccess」という名前を付けます。なぜファイル名がドットで始まるのかあなた自身に尋ねるかもしれません。 Unixのようなシステムでは、これはドットファイルが隠しファイルであることを意味します。 (注:オペレーティングシステムでドットで始まるファイル名が許可されていない場合は、一時的にファイル名を「xyz.htaccess」にしてください。後でWebサーバーにアップロードするとすぐに、 .htaccess ") 次に、MS Windowsの「エディタ」のような簡単なテキストエディタでファイルを開きます。 AddType application/x-httpd-php .html .htm これがうまくいかない場合は、ファイルから上記の行を削除し、PHP5の場合はこの代替行を貼り付けてください: AddType application/x-httpd-php5 .html .htm .htaccessファイルをWebサーバーのルートディレクトリにアップロードします。ファイルの名前が ".htaccess"であることを確認してください。あなたのWebサーバはPHPファイルのような* .htmと* .htmlファイルを解析するようになりました。

次のようにHTMLファイルを作成して動作するか試すことができます。 「PHP-で-HTML-のTest.htm」という名前を付け、それに次のコードを貼り付け、ウェブサーバのルートディレクトリにアップロードします:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    <HTML> 
<HEAD> 
<TITLE>Use PHP in HTML files</TITLE> 
</HEAD> 

    <BODY> 
    <h1> 
    <?php echo "It works!"; ?> 
    </h1> 
    </BODY> 
</HTML> 

はを入力して、ブラウザでファイルを開くために試してみてください。 http://www.your-domain.com/php-in-html-test.htm(ご自身のドメインでyour-domain.comを置き換えてください...) お使いのブラウザでは「It works!」というフレーズが表示されている場合、すべて正常に動作し、PHPを。* htmlと* .htmファイルで使用することができます。ただし、そうでない場合は、上記のように.htaccessファイルに代替行を使用してみてください。それでも問題が解決しない場合は、ホスティングプロバイダにお問い合わせください。

1

PHPインクルードの簡単な解決策を見つけました。すべての.htmlファイルの名前を.phpに変更してください。

0

私は同様の問題があります。 PHPはインクルードされたファイルの中のPHPコードが気に入らないようです。あなたの場合、ソリューションは非常に簡単です。 navbar.phpからphpコードを削除して、プレーンHTMLをそのまま残すだけで動作します。

+0

これは本当に質問に答えません。別の質問がある場合は、[質問する](https://stackoverflow.com/questions/ask)をクリックして質問することができます。十分な[評判](https://stackoverflow.com/help/)があれば、この問題にもっと注意を払うために[奨励金を追加](https://stackoverflow.com/help/privileges/set-bounties)することもできます何が評判か)。 - [レビューの投稿](/レビュー/低品質の投稿/ 17479786) –

関連する問題