我无法在HTML页面中使用PHP。例如,index.html
。我试过同时使用:
<? contents ?>
和
<?php contents ?>
这些都不起作用。我的服务器提供PHP,当我使用.php
扩展名时,它可以正常工作。这是一个问题还是我必须更改中的首选项php.ini
?
我无法在HTML页面中使用PHP。例如,index.html
。我试过同时使用:
<? contents ?>
和
<?php contents ?>
这些都不起作用。我的服务器提供PHP,当我使用.php
扩展名时,它可以正常工作。这是一个问题还是我必须更改中的首选项php.ini
?
Answers:
您无法在.html文件中运行PHP,因为除非您告知服务器,否则服务器不会将其识别为有效的PHP扩展名。为此,您需要在根Web目录中创建.htaccess文件,并将以下行添加到其中:
AddType application/x-httpd-php .htm .html
这将告诉Apache将扩展名为.htm或.html的文件作为PHP文件进行处理。
.htaccess
如果可以的话,他应该更新服务器配置,而不要使用。
.html
文件作为PHP处理是不必要的,甚至没有帮助。您希望用户访问example.com/foo
。无论服务器上的文件名如何,都可以使用该URL来提供PHP内容。如果用户已经添加了foo.html
书签,则仍然可以在foo.php
不重命名文件的情况下提供服务。
为了在.html文件中使用php,必须在HTTP服务器的配置文件中将它们与PHP处理器关联。在Apache中,如下所示:
AddHandler application/x-httpd-php .html
AddHandler
和之间的区别AddType
吗?谢谢。
如果您在一个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文件导入到Google电子表格中的任何方法,因此必须将其另存为.html文件才能正常使用。对于该特定用途,必须能够通过.html文件提供php服务。
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'
转到此文件,对其进行编辑,并确保已将其';security.limit_extensions = .php .php3 .php4 .php5 .php7'
注释为EG:从< -NB进行更改:请注意";"
-默认情况下此行实际上已禁用-并且您不需要所有废话扩展名,实际上它们是可能很危险..将其更改为'security.limit_extensions = .php .htm'
<-注意,现在已删除分号。然后重新启动apache /(或nginx)并重新启动php-fpm# service php-fpm restart
# service httpd restart
要组合HTML和PHP,可以使用.phtml文件。