我不能在我的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 的有据可查的机制,我不会在这里讨论。
-
你必须找出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:将其从
';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文件。