PHP与HTML配合搭建网站指南

一、基础结构说明

PHP(服务器端脚本语言)与HTML(页面结构语言)通过以下方式配合:

  1. 文件扩展名使用.php

  2. 在HTML结构中嵌入PHP代码

  3. PHP处理动态内容,HTML负责展示

  4. 服务器解析PHP代码后生成最终HTML发送给客户端

二、基础示例

php

复制代码
<!DOCTYPE html>
<html>
<head>
    <title>PHP+HTML示例</title>
</head>
<body>
    <!-- 静态HTML内容 -->
    <h1>欢迎来到<?php echo "我的网站"; ?></h1>
    
    <!-- 动态PHP内容 -->
    <?php
    date_default_timezone_set('Asia/Shanghai');
    $currentTime = date("Y-m-d H:i:s");
    ?>
    <p>当前时间:<?= $currentTime ?></p>
</body>
</html>

三、表单处理示例

1. 创建HTML表单(form.php)

php

复制代码
<!DOCTYPE html>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
    <form action="process.php" method="POST">
        <label>用户名:</label>
        <input type="text" name="username" required>
        
        <label>邮箱:</label>
        <input type="email" name="email" required>
        
        <input type="submit" value="注册">
    </form>
</body>
</html>

2. 处理表单数据(process.php)

php

复制代码
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 获取并过滤输入
    $username = htmlspecialchars($_POST['username']);
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

    // 验证数据
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        die("无效的邮箱格式");
    }

    // 显示结果
    echo "<h2>注册成功!</h2>";
    echo "<p>用户名:$username</p>";
    echo "<p>邮箱:$email</p>";
}
?>

四、数据库连接示例(MySQLi)

php

复制代码
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 执行查询
$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);

// 显示结果
if ($result->num_rows > 0) {
    echo "<ul>";
    while($row = $result->fetch_assoc()) {
        echo "<li>ID: ".$row["id"]." - 姓名: ".$row["name"]."</li>";
    }
    echo "</ul>";
} else {
    echo "0 结果";
}

$conn->close();
?>

五、最佳实践建议

  1. 代码分离

    • 将PHP逻辑代码放在文件顶部

    • 保持HTML展示代码整洁

    • 考虑使用模板引擎(如Smarty)或MVC框架

  2. 安全性

    • 始终验证和过滤用户输入

    • 使用预处理语句防止SQL注入

    • 对输出内容使用htmlspecialchars()

  3. 错误处理

    php

    复制代码
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
  4. 文件结构

    复制代码
    /public_html
        /css
        /js
        /images
        index.php
        contact.php
    /includes
        header.php
        footer.php
        config.php

六、模板化示例

header.php:

php

复制代码
<!DOCTYPE html>
<html>
<head>
    <title><?php echo $pageTitle; ?></title>
    <link rel="stylesheet" href="/css/style.css">
</head>
<body>

footer.php:

php

复制代码
    <footer>
        <p>&copy; <?php echo date('Y'); ?> 我的网站</p>
    </footer>
</body>
</html>

页面使用:

php

复制代码
<?php
$pageTitle = "首页";
include 'includes/header.php';
?>

<!-- 页面内容 -->
<h1>欢迎访问首页</h1>

<?php include 'includes/footer.php'; ?>

七、环境准备

  1. 安装本地服务器环境(XAMPP/MAMP/WAMP)

  2. 代码编辑器推荐:VS Code、PHPStorm

  3. 浏览器开发者工具


注意事项

  1. PHP代码必须在服务器环境下运行

  2. 文件保存时使用UTF-8编码

  3. 开发时开启错误提示,上线后关闭

  4. 使用最新PHP版本(推荐PHP 7.4+)

进阶学习方向

  • MySQL数据库集成

  • 用户会话管理(Session/Cookie)

  • 面向对象编程

  • 使用Composer管理依赖

  • 框架学习(Laravel/Symfony)

这个指南可以帮助初学者快速建立PHP与HTML配合开发的基础认知,实际开发中需要根据项目需求添加更多功能和安全性措施。

复制代码
<!-- 友情链接部分 -->
<div class="friend-links">
  <h3>友情链接</h3>
  <ul>
    <li><a href="http://mip.jiankang320.com/" target="_blank" rel="noopener noreferrer">mip.jiankang320.com</a></li>
    <li><a href="http://mip.pearice.com/" target="_blank" rel="noopener noreferrer">mip.pearice.com</a></li>
    <li><a href="http://mip.hmlton.com/" target="_blank" rel="noopener noreferrer">mip.hmlton.com</a></li>
    <li><a href="http://mip.ilomoo.com/" target="_blank" rel="noopener noreferrer">mip.ilomoo.com</a></li>
    <li><a href="http://mip.yousling.cn/" target="_blank" rel="noopener noreferrer">mip.yousling.cn</a></li>
    <li><a href="http://mip.vcbdrvg.cn/" target="_blank" rel="noopener noreferrer">mip.vcbdrvg.cn</a></li>
    <li><a href="http://mip.wgupiao.cn/" target="_blank" rel="noopener noreferrer">mip.wgupiao.cn</a></li>
    <li><a href="http://mip.newmeil.cn/" target="_blank" rel="noopener noreferrer">mip.newmeil.cn</a></li>
    <li><a href="http://mip.metagem.cn/" target="_blank" rel="noopener noreferrer">mip.metagem.cn</a></li>
    <li><a href="http://mip.lazykoala.cn/" target="_blank" rel="noopener noreferrer">mip.lazykoala.cn</a></li>
    <li><a href="http://mip.jqepvnh.cn/" target="_blank" rel="noopener noreferrer">mip.jqepvnh.cn</a></li>
    <li><a href="http://mip.bootstraptl.cn/" target="_blank" rel="noopener noreferrer">mip.bootstraptl.cn</a></li>
    <li><a href="http://mip.carcaremaster.cn/" target="_blank" rel="noopener noreferrer">mip.carcaremaster.cn</a></li>
    <li><a href="http://mip.hipandora.cn/" target="_blank" rel="noopener noreferrer">mip.hipandora.cn</a></li>
  </ul>
</div>
相关推荐
juruiyuan1112 小时前
FFmpeg3.4 libavcodec协议框架增加新的decode协议
前端
Peter 谭2 小时前
React Hooks 实现原理深度解析:从基础到源码级理解
前端·javascript·react.js·前端框架·ecmascript
LuckyLay3 小时前
React百日学习计划——Deepseek版
前端·学习·react.js
gxn_mmf3 小时前
典籍知识问答重新生成和消息修改Bug修改
前端·bug
hj10433 小时前
【fastadmin开发实战】在前端页面中使用bootstraptable以及表格中实现文件上传
前端
乌夷4 小时前
axios结合AbortController取消文件上传
开发语言·前端·javascript
晓晓莺歌4 小时前
图片的require问题
前端
码农黛兮_464 小时前
CSS3 基础知识、原理及与CSS的区别
前端·css·css3
水银嘻嘻5 小时前
web 自动化之 Unittest 四大组件
运维·前端·自动化
(((φ(◎ロ◎;)φ)))牵丝戏安5 小时前
根据输入的数据渲染柱形图
前端·css·css3·js