web-dev-qa-db-ja.com

PHPスクリプトがHTMLファイルで機能しない

私はPHPを初めて使用します。 XAMPPをインストールし、Apacheを実行しています。 XAMPPのhtdocsでhelloworld.phpを作成し、PHPをブラウザーに表示しました。私の質問は、HTMLファイルのPHPスクリプトがブラウザに表示されないのはなぜですか? PHPを単独でインストールしたことはありません。私もそれをインストールする必要がありますか? XAMPPと競合しますか?私のコードは以下の通りです。どんな援助もいただければ幸いです。前もって感謝します:

<html>
    <body>
        <?php
            echo "Hello PHP World";
        ?>
    </body>
</html>
10
Anthony

XAMPPにはすでにPHPが含まれていますが、スクリプト名を.phpで終わらせない限り、PHPエンジンによって処理される可能性は低くなります。

.htmlファイル内でphpを使用しようとしていると思いますか?次の行で.htaccessファイルを追加するか、Apache構成を変更してみてください。

 AddHandler application/x-httpd-php .html 
16
Artjom Kurapov

Apacheサービスを停止し、セクションのc:\ xampp\Apache\conf\httpd.confに...

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

Apacheを再起動してください!

これは、win32ビットの現在のxamppディストリビューションの大きな「機能」のように見えます。

9
user2301506

Httpd.confエントリのApacheなどのhttpconfにmimeタイプを追加する必要があります

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig "conf/mime.types"
   .......
    AddType application/x-httpd-php .html .htm
   AddType text/html .shtml

    AddOutputFilter INCLUDES .shtml
</IfModule>
6
Agus

Apacheのphpモジュールは、それ自体をmimeタイプのハンドラーとして登録しますapplication/x-httpd-php。また、構成ファイルApache\conf\extra\httpd-xampp.confには次の行が含まれています

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>

これは、名前拡張子として.phpを持つすべてのファイルが、次のハンドラーによって処理されることをApacheに通知します。 application/x-httpd-php
(本当に).htmlファイルをphpモジュールで処理したい場合は、.html拡張子に似たものを追加する必要があります。 (どの拡張機能がどのmimeタイプ/ハンドラーにマップされるかをApacheに伝える他の方法があります。しかし FilesMatch / SetHandler で問題ありません。)
この「機能」を1つのディレクトリに対してのみ有効にする場合は、 。htaccessファイル を使用して、そのディレクトリ(およびそのサブディレクトリ)の構成を変更できます。

5
VolkerK

やり過ぎ。これらすべての提案は、私を5時間ほど間違った道に導きます。 JK、しかし私はすべて間違った答えを与える多くのグーグル検索項目を読みました、そしてそれぞれの提案はただもっと間違った答えを追加していました。

答えは実はとても単純なので、頭を悩ませたくなるでしょう。ファイル拡張子を「.html」から「.php」に変更するだけです!!! PHPから完全にWebページを構築でき、JQuery、ブートストラップなど、JavaScriptから構築されたすべてのものが機能することを忘れないでください。

証明の簡単な例を次に示します。

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Blank Web Page</title>

    <link rel="stylesheet" type="text/css" href="css/css.css">

</head>

<body>

    <?php

    $son = 5;
    $nos =10;

    echo $son + $nos;

    ?>

    <h4>test to see if this html element can be output too!</h4>

    <script type="text/javascript" src="js/js.js"></script>

</body>

HTMLタグ(そこにあると信じてください)、Webページのもの、およびphpコードが内部に挿入されていなくても、標準のhtmlを使用していることに注意してください。もちろん、結果は15であり、html要素h4も正しくレンダリングされます。拡張子を「html」に戻すと、h4要素のみが取得され、phpコードがhtmlのマルチコメントを使用してコメントアウトされていることがわかります。

これがXamppでも機能することを追加するのを忘れました。

0
user7551673