27

ウェブサイトのすべてのページに含めるナビゲーションバー、画像、見出しがあるので、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>';

    ?>

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

4

7 に答える 7

27

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

ファイルの名前を次のように変更するだけ*.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番目のオプションでは、次の設定を追加し.htaccessて、でファイルの使用を許可する必要があります。httpd.conf

AllowOverride All
AccessFileName .htaccess

*これはApacheHTTPServerにとって正しいことです

于 2012-08-09T16:07:22.153 に答える
9

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

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

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

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

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

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

于 2012-08-09T16:09:55.700 に答える
4

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

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

<?php error_reporting(E_ALL);?>

これにより、ページ内のすべてのエラー/警告/通知が出力されるため、問題が発生した場合は、空白のページではなく、それを説明するテキストメッセージが表示されます。

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

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

これにより、致命的なエラーがスローされます。PHPは必要なページを読み込めず、問題の追跡を改善するのに役立ちます。

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

于 2012-08-09T16:29:16.487 に答える
2

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

2番目:インクルードパスがめちゃくちゃになっている可能性があります。現在のファイルと同じディレクトリにあるファイルを確実に含めるには、次を使用します__DIR__

include __DIR__.'/navbar.php'; // PHP 5.3 and later
include dirname(__FILE__).'/navbar.php'; // PHP 5.2
于 2012-08-09T16:16:56.350 に答える
1

phpコードをhtmlファイルに含めるためのステップバイステップのプロセスは次のとおりです(テスト済み)

PHPが機能している場合、*。htmlまたは*.htm拡張子の付いたファイルでもPHPスクリプトを使用するための手順は1つだけです。魔法の言葉は「.htaccess」です。詳細については、ウィキペディアの.htaccessの定義を参照してください。ウィキペディアによると、これは「Webサーバー構成の分散管理を可能にするディレクトリレベルの構成ファイル」です。

おそらく、このような.htaccess構成ファイルを目的に使用できます。この場合、WebサーバーでPHPファイルなどのHTMLファイルを解析する必要があります。

まず、空白のテキストファイルを作成し、「。htaccess」という名前を付けます。ファイル名がドットで始まる理由を自問するかもしれません。Unixライクなシステムでは、これはドットファイルが隠しファイルであることを意味します。(注:オペレーティングシステムでドットで始まるファイル名が許可されていない場合は、ファイルに一時的に「xyz.htaccess」という名前を付けてください。後の手順でファイルをWebサーバーにアップロードしたら、ファイルの名前をオンラインで「」に変更できます。 htaccess ")次に、MSWindowsの"Editor"のような単純なテキストエディタでファイルを開きます。次の行をファイルに貼り付けます。AddTypeapplication/x-httpd-php .html .htmこれが機能しない場合は、ファイルから上の行を削除して、PHP5の場合はこの代替行を貼り付けてください。AddTypeapplication/ 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を独自のドメインに置き換えてください。) 。)ブラウザに「動作します!」というフレーズが表示された場合 すべてが正常に機能し、今後は。*htmlおよび*.htmファイルでPHPを使用できます。ただし、そうでない場合は、上記のように.htaccessファイルの代替行を使用してみてください。それでも機能しない場合は、ホスティングプロバイダーにお問い合わせください。

于 2014-02-26T09:11:32.170 に答える
1

PHPインクルードのものの簡単な解決策を見つけました。すべての.htmlファイルの名前を.phpに変更するだけで、準備は完了です。

于 2015-01-22T14:44:43.653 に答える
0

同様の問題があります。PHPはインクルードファイル内のphpコードを好まないようです。あなたの場合、解決策は非常に簡単です。navbar.phpからphpコードを削除し、プレーンHTMLをそのままにしておくだけで機能します。

于 2017-09-29T04:32:12.837 に答える