如何将PHP代码/文件添加到HTML(.html)文件?

How do I add PHP code/file to HTML(.html) files?

提问人:Hoon 提问时间:7/3/2012 最后编辑:John CondeHoon 更新时间:1/30/2021 访问量:355380

问:

我不能在我的 HTML 页面中使用 PHP。例如。我尝试过同时使用两者:index.html

<? contents ?> 

<?php contents ?> 

这些都不起作用。我的服务器提供 PHP,当我使用扩展程序时,它可以正常工作。这是一个问题还是我必须更改中的首选项?.phpphp.ini

PHP HTML Apache 文件

评论

4赞 Explosion Pills 7/3/2012
您必须更改服务器(我假设是 apache)才能将 html 文件作为 php 提供,但为什么您希望扩展名是 html 而不是 php?
1赞 undone 7/3/2012
php.about.com/od/advancedphp/p/html_php.htm
0赞 undone 7/3/2012
@ExplosionPills我已经使用 IIS v7 完成了!这是可能的!
0赞 Explosion Pills 7/3/2012
@Death我并不是说它只能用apache来完成,我只是假设他正在使用apache。
1赞 Alien Technology 6/18/2017
多么可怕的主意。使用重定向来保存您的 SEO。将 .html 用于 HTML,将 .php 用于 PHP。

答:

152赞 John Conde 7/3/2012 #1

您不能在 .html 文件中运行 PHP,因为除非您告诉它,否则服务器不会将其识别为有效的 PHP 扩展。为此,您需要在根 Web 目录中创建一个 .htaccess 文件,并在其中添加以下行:

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

这将告诉 Apache 将文件扩展名为 .htm 或 .html 的文件作为 PHP 文件进行处理。

评论

16赞 Explosion Pills 7/3/2012
虽然这是对的,但我认为更重要问题是为什么要这样做?此外,如果这是一个选项,他应该更新服务器配置而不是使用。.htaccess
11赞 nickb 7/3/2012
我已经多次这样做以隐藏我正在使用 PHP 的事实(除了其他事情)
3赞 Nathan Long 7/4/2012
@nickb - 通过默默无闻实现安全?
3赞 Eric Finn 7/4/2012
@NathanLong w3.org/TR/cooluris 具体来说,第 4.5 节中的“将特定于实现的零碎部分(如 .php 和 .asp)排除在 URI 之外,您以后可能需要更改技术。
4赞 Nathan Long 7/4/2012
@EricFinn - 这是一个很好的指导方针。但是,让服务器将文件作为PHP进行处理甚至没有必要,也没有帮助。您希望用户访问 .您可以使用该 URL 来提供 PHP 内容,而不管服务器上的文件名如何。如果用户已添加书签,您仍然可以在不重命名文件的情况下投放。.htmlexample.com/foofoo.htmlfoo.php
15赞 Chris Trahey 7/3/2012 #2

为了在 .html 文件中使用 php,您必须将它们与 HTTP 服务器配置文件中的 PHP 处理器相关联。在 Apache 中,它看起来像这样:

AddHandler application/x-httpd-php .html

评论

0赞 PatrickT 1/22/2020
您愿意评论一下 和 之间的区别吗?谢谢。AddHandlerAddType
1赞 Chris Trahey 1/24/2020
@PatrickT 最简单的比较方法是 AddHandler 是一个“输入”映射 - 它将传入的文件扩展名映射到处理程序。AddType 修改输出 MIME 类型标头。请参阅此处的注释:httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype
7赞 Kerry Ritter 7/3/2012 #3

默认情况下,您不能在 HTML 页面中使用 PHP。

为此,请使用以下命令修改 .htacccess 文件:

AddType application/x-httpd-php .html
7赞 Sirko 7/3/2012 #4

为了解析文件,您需要在服务器配置中设置适当的处理程序。.html

对于 Apache httpd 2.X,这是以下行

AddHandler application/x-httpd-php .html

有关特定服务器安装的信息,请参阅 PHP 文档

20赞 David Morales 7/3/2012 #5

我认为将PHP写入.html文件是令人困惑和反自然的。你为什么要这样做??

无论如何,如果您想要执行PHP文件并在地址栏中将它们显示为.html,那么最简单的解决方案是正常使用.php,并在.htaccess中编写如下规则:

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

评论

0赞 Hoon 7/3/2012
如果我使用 PHP + HTML 怎么办?我应该使用哪种格式?我很困惑。我的页面有基于PHP的非常短的代码,并且有很多HTML代码。所以我要做的是制作一个 HTML 文件。这是个坏习惯吗?
4赞 David Morales 7/3/2012
格式应为 .php,因为 .html 文件旨在仅包含 HTML 代码。
13赞 Albert Casanovas 7/3/2012 #6

您可以像其他人所说的那样修改.htaccess,但最快的解决方案是将文件扩展名重命名为.php

评论

0赞 Floggedhorse 3/10/2019
您也可以尝试 .phtml
10赞 Badar 7/5/2012 #7

添加此行

AddHandler application/x-httpd-php .html

申请您想做的事情。 但请记住,如果你这样做,那么你的 Web 服务器会很慢,因为它甚至会解析不包含 php 代码的静态代码。 因此,更好的方法是制作文件扩展名,而不仅仅是 .httpd.conf.phtml.html

评论

5赞 David Morales 7/5/2012
请记住,请不要用粗体写下您的整个答案。
-2赞 Eduardo Guardado 10/15/2015 #8

要合并 HTML 和 PHP,您可以使用 .phtml 文件。

4赞 MistyDawn 2/15/2017 #9

如果您在一个 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 函数从外部 url 导入 JSON 数据,必须用 php 解析才能清理它并构建一个 html 表。到目前为止,我还没有找到任何将 .php 文件导入谷歌电子表格的方法,因此必须将其保存为 .html 文件才能使该功能正常工作。能够通过 .html 文件提供 php 对于该特定用途是必要的。

评论

0赞 quantme 3/1/2020
非常实用。
6赞 Progga Ilma 12/15/2018 #10

使用记事本创建一个空文件并将其命名为 .htaccess,然后将该文件复制到您的项目目录中并添加此行并保存。

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

否则使用 .php 保存 .html 文件,因为 PHP 可以支持 HTML,并将其保存在 computer/var/www/html 路径(linux) 中

评论

3赞 quantme 3/1/2020
感谢您考虑那些甚至不知道如何创建 .htaccess 文件的人。
0赞 Ravi Ganesh 4/5/2020 #11

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
}
2赞 Mr Heelis 8/13/2020 #12

现代修订版:您现在还需要通过更改 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. 转到此文件,对其进行编辑,并确保您意识到它已被注释掉 EG:将其从 < 更改 - 注意:请注意 - 默认情况下,此行实际上是禁用的 - 并且您不需要所有无意义的扩展,实际上它们可能很危险。将其更改为 < - 注意分号现在已被删除。然后重新启动 apache/(或 nginx)并重新启动 php-fpm';security.limit_extensions = .php .php3 .php4 .php5 .php7'";"'security.limit_extensions = .php .htm'# service php-fpm restart # service httpd restart