php文件必须使用.php扩展名,保存为utf-8无bom编码,php代码需置于标签内,公共模块用include引入且被引入文件也须为.php后缀。

文件扩展名必须改成 .php
浏览器不解析PHP,服务器才解析。只要文件还是 index.html,哪怕里面写了 <?php echo 'hello'; ?>,也会原样输出甚至暴露源码。唯一可靠的做法是把文件后缀明确改为 .php,比如 about.html → about.php。这步不是“可选”,是硬性前提。
注意:重命名后要检查所有内部链接,比如导航栏里写的是 <a href="contact.html"></a>,得同步改成 <a href="contact.php"></a>,否则点进去 404。
保存时选 UTF-8 无 BOM 编码
用 VS Code、Notepad++ 或 Sublime Text 打开 HTML 文件,另存为时务必在编码选项里选 UTF-8 without BOM。带 BOM 的 UTF-8 会导致 PHP 在输出前多出不可见字符,轻则页面顶部空白,重则报错 Cannot modify header information —— 因为 PHP 已经开始输出了。
常见错误现象:
- 页面顶部莫名其妙空一行
-
header()函数调用失败 - JSON 输出变成
\ufeff{"data":"..."}
PHP 代码必须写在 <?php ?> 标签内
HTML 中混写 PHP 不是“随便插”,语法边界很关键。以下写法都无效:
-
<h1> echo "Hello"; ?></h1>(短标签默认关闭,别依赖) -
<?php echo "Hello" ?>(缺少分号不影响执行,但易漏,建议写全) - 把
<?php include 'header.php'; ?>放在标签外(可能被当成纯文本)
推荐写法:
<?php $title = "关于我们";
$year = date("Y");
?><title><?php echo $title; ?></title><p>版权所有 <?php echo $year; ?></p>
引入公共模块要用 include 或 require
想把页头、页脚抽成独立文件复用?创建 header.php 和 footer.php,然后在主文件中用 include 引入。路径写相对路径即可,比如:
-
<?php include 'header.php'; ?>(同目录) -
<?php include 'inc/header.php'; ?>(子目录) -
<?php require_once 'config.php'; ?>(防重复加载,适合配置文件)
容易踩的坑:
- 路径写错导致白屏且无报错(默认
display_errors=Off),先在php.ini里打开调试:设display_errors = On、error_reporting = E_ALL - 被引入的
header.php文件本身也必须是.php后缀,且不能有额外输出(比如开头空行或 BOM)
真正麻烦的从来不是改后缀或加标签,而是编码、路径、错误抑制这三者叠加后,问题藏得深、表现怪、查起来费时间。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











