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


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

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

<? contents ?> 

<?php contents ?> 

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

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

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

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

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

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

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

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

AddHandler application/x-httpd-php .html

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

添加此行

AddHandler application/x-httpd-php .html

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

为了解析

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

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

AddHandler application/x-httpd-php .html

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

默认情况下,

您不能在 HTML 页面中使用 PHP。

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

AddType application/x-httpd-php .html

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

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

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

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

现代修订版:您现在还需要通过更改 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:将其从 ';security.limit_extensions = .php .php3 .php4 .php5 .php7' <- 注意:请注意";" - 默认情况下,这一行实际上是禁用的 - 你不需要所有的废话扩展,事实上它们可能是危险的。将其更改为 'security.limit_extensions = .php .htm' <- 请注意,分号现已删除。然后重新启动 Apache/(或 nginx) 并重新启动 php-FPM # service php-fpm restart # service httpd restart

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
}

为了结合HTML和PHP,你可以使用.phtml文件。