web-dev-qa-db-ja.com

PHP HTMLに含める?

ナビゲーションバー、画像、およびWebサイトのすべてのページに含める見出しがあるため、php includeを使用して複数のページでこのコードを参照したいと考えました。ただし、ロードしても何もレンダリングされないため、構文が間違っているなどの可能性があると思います。コードスニペットは次のとおりです。

<!-- 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>';

    ?>

助けてくれてありがとう!

23
sresht

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

ファイルの名前を*.htmlから*.phpに変更するだけです


異なる形式のファイルでphpコード処理を許可する場合は、次の2つのオプションがあります。

1)httpd.confを変更して、サーバー上のすべてのプロジェクトでこれを許可します。

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

2)別のプロジェクトのトップディレクトリに.htaccessファイルを作成します。

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

2番目のオプションでは、次の設定を追加して、.htaccesshttpd.confファイルの使用を許可する必要があります。

AllowOverride All
AccessFileName .htaccess

* Apache HTTPサーバーに正しい

24

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

_.php_拡張子を持つインデックスファイルを実際に使用していることを確認してください。_.html_はphp includeでは機能しません。 (サーバーに.htmlファイルを別の方法で処理するように指示していない限り)

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

_index.php
navbar.php
image.php
header.php
_

そうでなければ、それらのPHPファイルが_/includes/_というフォルダーにある場合、次のようになります。

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

9

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

次の2つのことを試してください。-サンプルページの上部に次の行を追加します。

<?php error_reporting(E_ALL);?>

これにより、ページ内のすべてのエラー/警告/通知が印刷されるため、問題がある場合は、空白ページの代わりにそれを説明するテキストメッセージが表示されます。

さらに、include()をrequire()に変更できます

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

これは致命的なエラーをスローしますPHPは必要なページをロードできません。また、何が間違っているかをより良く追跡するのに役立ちます。

エラーの説明があれば、ここに投稿できますが、その意味を理解することはできません。

4
raidenace

ここに、HTMLファイルにPHPコードを含めるための段階的なプロセスがあります(テスト済み)

PHPが機能している場合、*。htmlまたは* .htm拡張子を持つファイルでもPHPスクリプトを使用する手順は1つだけです。魔法の言葉は「.htaccess」です。詳細については、Wikipediaの.htaccessの定義を参照してください。ウィキペディアによると、「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-in-html-test.htm」という名前を付け、次のコードを貼り付けて、Webサーバーのルートディレクトリにアップロードします。

    <!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!」というフレーズが表示されている場合すべてが正常に機能し、今後は。* htmlおよび* .htmファイルでPHPを使用できます。ただし、そうでない場合は、上記で示したように、.htaccessファイルの代替行を使用してみてください。それでも機能しない場合は、ホスティングプロバイダーにお問い合わせください。

1
napender

PHP include stuff。に対する単純な解決策を見つけました。すべての.htmlファイルの名前を.phpに変更するだけで準備完了です。

1
chitech

最初:他の人が言ったこと。 echoステートメントを忘れて、navbar.phpを通常のHTMLファイルとして記述してください。

2番目:おそらく、インクルードパスが台無しになります。現在のファイルと同じディレクトリにあるファイルを確実に含めるには、__DIR__

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

同様の問題があります。 PHPはインクルードされたファイル内のphpコードを好まないようです。あなたの場合の解決策は非常に単純です。navbar.phpからphpコードを削除します。

0
Alex S