繁体   English   中英

如何将 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 将具有 .htm 或 .html 文件扩展名的文件作为 PHP 文件处理。

我认为将 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

如果您在一个 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 表。 到目前为止,我还没有找到将 .php 文件导入谷歌电子表格的任何方法,因此必须将其保存为 .html 文件才能使该功能正常工作。 能够通过 .html 文件提供 php 是该特定用途所必需的。

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

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

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

现代修订版:您现在还需要通过更改 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 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM