在默认情况下,html文件是由服务器直接返回给客户端,不会经过php解析器处理,因此写在html文件里的php代码不会被执行。想要在html页面运行php,需要通过调整服务器配置或者改变文件处理方式来实现,下面介绍几种常用的方法。
方法一:修改Apache配置让html文件支持php解析
如果使用Apache作为Web服务器,可以通过修改配置文件,让服务器把html文件也交给php解析器处理,这样html页面里的php代码就能正常执行。
操作步骤
首先找到Apache的配置文件httpd.conf,或者在项目的.htaccess文件中添加如下配置:
# 让html和htm后缀的文件也通过php解析器处理 AddType application/x-httpd-php .html .htm
如果是使用PHP-FPM的模式,可能需要添加如下配置:
# 匹配html和htm后缀的请求,交给php-fpm处理
<FilesMatch ".(html|htm)$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
配置完成后重启Apache服务,之后在html文件中写入php代码就可以正常执行了,比如创建test.html文件,内容如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>html运行php测试</title>
</head>
<body>
<p>当前时间是:<?php echo date("Y-m-d H:i:s"); ?></p>
</body>
</html>
访问这个test.html页面,就可以看到页面上输出了当前的时间,说明php代码已经成功执行。
方法二:通过php包含文件的方式实现
如果不想修改服务器配置,也可以采用php包含文件的方式,把html页面的内容放到php文件中,或者通过php文件包含html片段来实现功能。
实现方式
首先创建一个index.php文件,在文件中通过include或者require语句引入html内容,同时可以在php文件中编写业务逻辑,示例如下:
<?php // 定义变量,传递给html部分使用 $page_title = "我的测试页面"; $user_name = "测试用户"; // 包含html内容文件 include "content.html"; ?>
然后创建content.html文件,内容如下,这里可以直接使用php文件中定义的变量:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title><?php echo $page_title; ?></title>
</head>
<body>
<h1>欢迎你,<?php echo $user_name; ?></h1>
<p>这是通过php包含方式运行的html内容</p>
</body>
</html>
访问index.php文件,就可以看到页面正常显示了变量内容,这种方式不需要修改服务器配置,兼容性更好。
方法三:使用CGI模式运行php
如果服务器支持CGI模式,也可以通过CGI的方式来让html页面执行php代码,不过这种方式配置相对复杂,现在使用得比较少。
基本配置
首先确认服务器已经开启了CGI模块,然后在html文件的开头添加CGI的执行声明,不过这种方式需要html文件本身有执行权限,并且服务器的CGI配置正确,示例配置如下:
# 开启CGI模块
LoadModule cgi_module modules/mod_cgi.so
# 设置cgi目录
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
Require all granted
</Directory>
不过这种方式现在很少用于html页面运行php的场景,更推荐前面两种配置更简单的方法。
注意事项
- 修改服务器配置后一定要重启对应的服务,否则配置不会生效。
- 如果使用的是Nginx服务器,配置方式和Apache不同,需要在Nginx的配置文件中添加对应的location规则,让html后缀的请求交给php-fpm处理。
- 把html文件交给php解析器处理会增加服务器的开销,如果网站中大部分是静态html页面,不建议开启这个功能,只针对需要的文件做处理即可。
通过以上几种方法,就可以实现在html页面中运行php代码的需求,开发者可以根据自己的服务器环境和实际需求选择合适的方法。
PHPHTMLphp_includeApachephp_cgi修改时间:2026-07-14 14:57:23