PHPコード/ファイルをHTML(.html)ファイルに追加するにはどうすればよいですか?


97

HTMLページでPHPを使用できません。たとえば、index.html。私は両方を使ってみました:

<? contents ?> 

そして

<?php contents ?> 

これらはどちらも機能しません。私のサーバーはPHPを提供しており、.php拡張機能を使用すると正しく機能します。これは問題php.iniですか、それとも設定を変更する必要がありますか?


2
サーバーを変更して(私はapacheを想定しています)htmlファイルをphpとして提供する必要がありますが、拡張機能をphpではなくhtmlにしたいのはなぜですか?
爆発の丸薬


@ExplosionPills IIS v7を使用して実行しました!そしてそれは可能です!
取り消さ

@Death私はそれがApacheでしかできないことを意味するつもりはなかった、私は彼がApacheを使用していると仮定しただけだ。
爆薬

1
なんて恐ろしい考えでしょう。リダイレクトを使用してSEOを保存します。HTMLには.html、PHPには.phpを使用します。
Alien Technology

回答:


142

.htmlファイルでPHPを実行することはできません。サーバーは、指示がない限り、それを有効なPHP拡張機能として認識しないためです。これを行うには、ルートWebディレクトリに.htaccessファイルを作成し、次の行を追加する必要があります。

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

これにより、Apacheは.htmまたは.htmlファイル拡張子を持つファイルをPHPファイルとして処理します。


15
これは正しいですが、より重要な質問は、なぜこれを行うのですか?さらに、.htaccessオプションである場合は、使用するのではなくサーバー構成を更新する必要があります。
爆発の丸薬

10
PHPを使用しているという事実(他のものに加えて)を隠すために、これを何度も行っています
nickb

3
@nickb-あいまいさによるセキュリティ?
ネイサンロング、

2
@NathanLong w3.org/TR/cooluris具体的には、「URIに.phpや.aspなどの実装固有のビットやピースを残しておくと、後でテクノロジーを変更したい場合があります」。セクション4.5で。
Eric Finn

4
@EricFinn-それは良いガイドラインです。しかし、サーバーが.htmlPHPとしてファイルを処理することは、それに従うことでさえ、必要でもなく、役に立ちません。ユーザーにアクセスしてもらいたいexample.com/foo。サーバー上のファイル名に関係なく、そのURLを使用してPHPコンテンツを提供できます。ユーザーが既にfoo.htmlブックマークを付けている場合でもfoo.php、ファイルの名前を変更せずにサービスを提供できます。
Nathan Long

20

PHPを.htmlファイルに書き込むのは混乱を招き、不自然だと思います。どうしてそうするか??

とにかく、PHPファイルを実行してアドレスバーに.htmlとして表示する場合、最も簡単な解決策は、通常どおり.phpを使用し、次のように.htaccessにルールを記述することです。

RewriteRule ^([^.]+)\.html$ $1.php [L]

PHP + HTMLを使用するとどうなりますか?どのフォーマットを使用する必要がありますか?私はかなり混乱しています。私のページにはPHPに基づく短いコードがあり、HTMLには多くのコードがあります。だから私がやろうとしていたのはHTMLファイルを作ることです。これは悪い習慣ですか?
フーン

3
.htmlファイルはHTMLコードのみを含むことを目的としているため、形式は.phpにする必要があります。
デビッドモラレス

15

.htmlファイルでphpを使用するには、HTTPサーバーの構成ファイルでそれらをPHPプロセッサに関連付ける必要があります。Apacheでは、次のようになります。

AddHandler application/x-httpd-php .html

あなたは違いについてコメントする気だろうAddHandlerAddType?ありがとう。
PatrickT

1
@PatrickT比較する最も簡単な方法は、AddHandlerが「入力」マッピングであることです。これは、受信ファイル拡張子をハンドラーにマッピングします。AddTypeは、出力MIMEタイプヘッダーを変更します。こちらのメモを参照してください:httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype
Chris Trahey

13

他の人が言ったように.htaccessを変更できますが、最も速い解決策は、ファイル拡張子を.phpに変更することです


.phtmlを試すこともできます
Floggedhorse

9

この行を追加

AddHandler application/x-httpd-php .html

httpd.confあなたがしたいことのために提出する。ただし、これを行うと、phpコードを含まない静的コードも解析するため、Webサーバーが非常に遅くなることに注意してください。したがって、より良い方法は.phtml、単にの代わりにファイル拡張子を作成することです.html


5
答え全体を太字で書かないでください。
デビッドモラレス

7

持つために.htmlうまくとして解析されたファイルを、サーバーの設定で適切なハンドラを設定する必要があります。

Apache httpd 2.Xの場合、これは次の行です

AddHandler application/x-httpd-php .html

特定のサーバーのインストールについては、PHPのドキュメントを参照してください。


6

デフォルトでは、HTMLページでPHPを使用することはできません。

これを行うには、.htacccessファイルを次のように変更します。

AddType application/x-httpd-php .html

4

1つのhtmlファイルにphpコードしかないが、htmlコードのみを含む他のファイルが複数ある場合は、以下を.htaccessファイルに追加して、特定のファイルのみをphpとして提供することができます。

<Files yourpage.html>
AddType application/x-httpd-php .html 
//you may need to use x-httpd-php5 if you are using php 5 or higher
</Files>

これにより、PHPが「yourpage.html」ファイルでのみ実行可能になり、サーバー全体のスローダウンを防ぐすべてのhtmlページでは実行できなくなります。

誰かがhtmlファイルを介してphpを提供する理由について、GoogleスプレッドシートのIMPORTHTML関数を使用して、phpで解析して外部のURLからJSONデータをインポートし、クリーンアップしてhtmlテーブルを作成する必要があります。これまでのところ、Googleスプレッドシートに.phpファイルをインポートする方法は見つからなかったため、関数を機能させるには.htmlファイルとして保存する必要があります。.htmlファイルを介してphpを提供できることは、その特定の用途に必要です。


とても実用的です。
数量

4

メモ帳を使用して空のファイルを作成し、.htaccessという名前を付けます。次に、そのファイルをプロジェクトディレクトリにコピーし、この行を追加して保存します。

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

それ以外の場合、phpはhtmlをサポートできるため、.phpを使用して.htmlファイルを保存し、computer / var / www / html path(linux)に保存します。


1
.htaccessファイルの作成方法さえ知らない方を検討していただき、ありがとうございます。
数量

0

AJAXも可能です。実際には、phpページからのデータが必要です。データを取得したら、JavaScriptでフォーマットして表示できます。

var xmlhttp = new XMLHttpRequest();
var url = "risingStars.php";

xmlhttp.onreadystatechange = function () {
    if (this.readyState == 4 && this.status == 200) {
        getDbData(this.responseText);
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();


function getDbData(response) {

//do whatever you want with respone
}

0

モダンリビジョン:これを行うには、php-fpmのほとんど知られていない '' security.limit_extensions ''を変更して修正する必要があります。apacheをAddHandler / AddTypeに変更するための十分に文書化されたメカニズムはおそらくすでにご存じでしょう。ここでは説明しません。

  1. php-fpm / confがセットアップのどこにあるかを確認する必要があります。こうやってやった

    # grep -rnw '/etc/' -e 'security.limit_extensions'

  2. 私はこれを取り戻しました

    '/etc/php-fpm.d/www.conf:387:;security.limit_extensions = .php .php3 .php4 .php5 .php7'

  3. このファイルに移動し、編集して、コメント化されていることを確認します。例:変更します';security.limit_extensions = .php .php3 .php4 .php5 .php7'< -NB:";"この行はデフォルトで実際には無効になっています-そして、実際には意味のない拡張機能は必要ありません。おそらく危険です。変更して'security.limit_extensions = .php .htm'ください。セミコロンが削除されていることに注意してください。次に、apache /(またはnginx)を再起動し、php-fpmを再起動します# service php-fpm restart # service httpd restart


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.