提问人:Hoon 提问时间:7/3/2012 最后编辑:John CondeHoon 更新时间:1/30/2021 访问量:355380
如何将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 文件进行处理。
评论
.htaccess
.html
example.com/foo
foo.html
foo.php
为了在 .html 文件中使用 php,您必须将它们与 HTTP 服务器配置文件中的 PHP 处理器相关联。在 Apache 中,它看起来像这样:
AddHandler application/x-httpd-php .html
评论
AddHandler
AddType
默认情况下,您不能在 HTML 页面中使用 PHP。
为此,请使用以下命令修改 .htacccess 文件:
AddType application/x-httpd-php .html
为了解析文件,您需要在服务器配置中设置适当的处理程序。.html
对于 Apache httpd 2.X,这是以下行
AddHandler application/x-httpd-php .html
有关特定服务器安装的信息,请参阅 PHP 文档。
我认为将PHP写入.html文件是令人困惑和反自然的。你为什么要这样做??
无论如何,如果您想要执行PHP文件并在地址栏中将它们显示为.html,那么最简单的解决方案是正常使用.php,并在.htaccess中编写如下规则:
RewriteRule ^([^.]+)\.html$ $1.php [L]
评论
您可以像其他人所说的那样修改.htaccess,但最快的解决方案是将文件扩展名重命名为.php
评论
添加此行
AddHandler application/x-httpd-php .html
申请您想做的事情。
但请记住,如果你这样做,那么你的 Web 服务器会很慢,因为它甚至会解析不包含 php 代码的静态代码。
因此,更好的方法是制作文件扩展名,而不仅仅是 .httpd.conf
.phtml
.html
评论
要合并 HTML 和 PHP,您可以使用 .phtml 文件。
如果您在一个 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 对于该特定用途是必要的。
评论
使用记事本创建一个空文件并将其命名为 .htaccess,然后将该文件复制到您的项目目录中并添加此行并保存。
AddType application/x-httpd-php .htm .html
否则使用 .php 保存 .html 文件,因为 PHP 可以支持 HTML,并将其保存在 computer/var/www/html 路径(linux) 中
评论
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
}
现代修订版:您现在还需要通过更改 php-fpm 中鲜为人知的“security.limit_extensions”来修复它。您可能已经知道将 apache 更改为 AddHandler/AddType 的有据可查的机制,我不会在这里详细介绍。
您必须找出 php-fpm/conf 在您的设置中的位置。我通过这样做做到了
# grep -rnw '/etc/' -e 'security.limit_extensions'
我把这个拿回来了
'/etc/php-fpm.d/www.conf:387:;security.limit_extensions = .php .php3 .php4 .php5 .php7'
转到此文件,对其进行编辑,并确保您意识到它已被注释掉 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
评论