很多刚接触 Web 开发的朋友,在学习 php 的过程中经常会遇到一个看似简单但实际上容易绕晕的问题:**HTML 页面里怎么正确地使用 PHP?**今天这篇文章,我会用非常接地气的方式,带你从0到1掌握 PHP 和 HTML 的混用方式,包括标签写法、循环输出、日期展示、组件复用等。
无论你是刚入门的小白,还是正要写个人网站的开发者,这篇文章都能帮你打下实用基础。
一、PHP 与 HTML 的结合形式有哪些?
我们先抛开语法不谈,来捋一捋“在 HTML 中写 PHP”这件事的本质。
要知道,PHP 是服务端语言,也就是说浏览器是看不到 PHP 原始代码的。你写的 PHP 代码是在服务器上执行的,执行结果会被“渲染”成 HTML 输出到浏览器,这也是为什么我们说 PHP 是“服务器端脚本”。
那么如何把这两者结合呢?有两种常见的方式:
方式一:将 PHP 嵌入 HTML 页面(.php 文件中)
这是最常见的做法,你创建一个 .php
扩展名的文件,然后在 HTML 的结构中嵌入 PHP 标签,例如:
<h1><?php echo "Hello World"; ?></h1>
这个写法告诉服务器“我要在这里执行一段 PHP 代码”,然后输出结果。
方式二:强制 HTML 文件支持 PHP(不推荐)
理论上,你也可以将 PHP 代码嵌入 .html
文件中,然后修改服务器配置(如 Apache 的 .htaccess
)让它识别 HTML 文件中的 PHP。但这种方法需要修改服务器规则,不够灵活,更推荐直接用 .php 文件来书写混合内容。
二、基础写法:HTML 中如何正确插入 PHP 标签?
PHP 有专属的代码包裹格式,标准写法是:
<?php
// PHP 代码在这里写
?>
你可以把这段插入到 HTML 页面任何你想要动态输出内容的位置。例如:
<!DOCTYPE html>
<html>
<head><title>PHP 示例</title></head>
<body>
<h1><?php echo "这是一段来自服务器的消息"; ?></h1>
</body>
</html>
在浏览器里看到的不是 PHP 代码,而是已经执行完成后的输出结果。这说明——PHP 是在服务端执行,执行后输出的是普通 HTML。
三、再举一个例子:展示当前日期和星期
我们想展示“今天是星期几”和“今天的日期”,是不是要用 PHP 来处理呢?
当然!看这个写法:
<div>今天日期是:<b><?php echo date('Y/m/d'); ?></b></div>
<div>今天是:<b><?php echo date('l'); ?></b></div>
你甚至可以使用字符串拼接方式来写:
<?php
echo '今天是 <b>' . date('Y/m/d') . '</b>,星期 <b>' . date('l') . '</b>';
?>
无论哪种写法,效果都一样。选哪种看你个人代码风格偏好。
四、循环输出:用 PHP 控制 HTML 的生成结构
这在列表展示、表格输出等场景中极为常用。我们可以用 foreach
或 while
来控制输出。
来看一个 foreach
示例,输出员工列表:
<?php
$staff = ['小明', '小红', '小刚', '小翠'];
?>
<ul>
<?php foreach ($staff as $person) { ?>
<li><?php echo $person; ?></li>
<?php } ?>
</ul>
你还可以用 while
来实现一样的效果:
<?php
$i = 0;
$total = count($staff);
?>
<ul>
<?php while ($i < $total) { ?>
<li><?php echo $staff[$i]; ?></li>
<?php $i++; ?>
<?php } ?>
</ul>
五、PHP 短标签语法(Shorthand):让代码更简洁
除了 <?php echo ?>
之外,其实你还可以写得更短:
<h1><?= "这是一条简洁的输出"; ?></h1>
这个写法被称为“PHP 短标签”,功能等价于 <?php echo ... ?>
。它在大多数现代服务器上默认启用,可读性也更好,建议用于纯输出场景。
六、include / require:让 HTML 页面结构更模块化
比如你有一个网站,每页顶部的导航栏都一样,这时候你就可以把导航的代码写进一个 header.php
里,然后在每个页面里引入它:
<?php include 'header.php'; ?>
这样只要改一次 header.php
,所有页面的头部结构都会跟着更新。
例子:我们有以下三个文件:
header.php
<div>欢迎来到我的网站!</div>
date.php
<?php include 'header.php'; ?>
<div>今天是:<?= date('Y/m/d'); ?></div>
day.php
<?php include 'header.php'; ?>
<div>星期:<?= date('l'); ?></div>
通过 include,我们实现了网页模块化复用,非常适合实际项目开发