PHP手机网站开发完整教程
手机网站开发的核心是 “响应式设计”,这意味着你的网站代码能够根据用户访问的设备(手机、平板、桌面电脑)自动调整布局和样式,以提供最佳浏览体验。

我们将使用以下主流技术栈:
- 后端: PHP
- 前端: HTML5, CSS3, JavaScript
- 响应式框架: Bootstrap (简化CSS开发)
- 数据库: MySQL
- Web服务器: Apache 或 Nginx
第一部分:准备工作
在开始编码之前,你需要搭建一个本地的开发环境。
安装集成开发环境
对于PHP开发,最简单的方式是安装一个集成开发环境,它会自动安装PHP、MySQL和Web服务器。
- 强烈推荐: XAMPP (适用于 Windows, macOS, Linux) 或 MAMP (适用于 macOS),它们都是免费且易于安装的。
- 下载地址: https://www.apachefriends.org/ (XAMPP)
- 安装过程非常简单,只需按照向导一步步操作即可。
配置虚拟主机 (可选但推荐)
为了模拟真实的网站环境,我们为项目创建一个虚拟主机。

-
在XAMPP的安装目录下,找到
htdocs文件夹。 -
在
htdocs文件夹内创建一个新项目文件夹,mobile_site。 -
编辑
httpd-vhosts.conf文件 (通常在xampp/apache/conf/extra/目录下)。 -
在文件末尾添加以下配置:
(图片来源网络,侵删)<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/mobile_site" # 请根据你的实际路径修改 ServerName mobile-site.local <Directory "C:/xampp/htdocs/mobile_site"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> -
编辑你的系统
hosts文件 (Windows在C:\Windows\System32\drivers\etc\hosts,macOS在/etc/hosts),添加一行:0.0.1 mobile-site.local -
重启Apache服务器,你就可以在浏览器中通过
http://mobile-site.local访问你的项目了。
第二部分:项目结构
一个清晰的目录结构有助于项目管理和维护,我们推荐以下结构:
mobile_site/
├── assets/ # 存放静态资源
│ ├── css/ # CSS文件
│ │ └── style.css # 主样式表
│ ├── js/ # JavaScript文件
│ │ └── script.js # 主脚本文件
│ └── images/ # 图片资源
├── includes/ # 存放公共组件
│ ├── header.php # 公共头部
│ ├── footer.php # 公共底部
│ └── db.php # 数据库连接配置
├── index.php # 首页
├── about.php # 关于我们页面
└── contact.php # 联系我们页面
第三部分:核心技术与实现
响应式设计基础
响应式设计主要依赖三个核心技术:
a) 视口
在HTML的 <head> 标签中必须添加 viewport meta标签,它告诉浏览器如何控制页面的尺寸和缩放。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
width=device-width: 使页宽度与设备的屏幕宽度匹配。initial-scale=1.0: 初始缩放比例为1.0。
b) 媒体查询
媒体查询是CSS3的核心功能,它允许你根据设备的特定特征(如宽度、高度)应用不同的样式。
语法:
/* 当屏幕宽度小于等于768像素时(平板和手机) */
@media (max-width: 768px) {
/* 在这里编写针对小屏幕的CSS */
.main-nav {
display: none; /* 隐藏主导航 */
}
.mobile-menu-btn {
display: block; /* 显示移动端菜单按钮 */
}
}
/* 当屏幕宽度大于768像素时(桌面) */
@media (min-width: 769px) {
/* 在这里编写针对大屏幕的CSS */
.main-nav {
display: flex;
}
.mobile-menu-btn {
display: none;
}
}
c) 弹性布局
使用相对单位(如百分比 、vw、vh、em、rem)代替固定像素(px),让元素能够根据容器大小自适应。
.container {
width: 100%; /* 容器宽度占满父元素 */
padding: 15px;
box-sizing: border-box; /* 让padding和border包含在width内 */
}
.box {
width: 50%; /* 两个盒子并排 */
float: left;
}
使用Bootstrap简化开发
手动编写响应式CSS比较繁琐。Bootstrap 是一个流行的前端框架,它内置了强大的响应式网格系统和组件,能极大提高开发效率。
如何集成Bootstrap:
-
在你的
style.css之前,引入Bootstrap的CSS文件(推荐使用CDN)。<!-- 在 <head> 中 --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
-
Bootstrap的网格系统非常简单:
- 容器:
<div class="container">或<div class="container-fluid"> - 行:
<div class="row"> - 列:
<div class="col">,<div class="col-md-6">(在中等屏幕上占6列,即一半宽度)
示例:
<div class="container"> <div class="row"> <div class="col-md-8"> <h1>主要内容</h1> <p>这里是文章内容...</p> </div> <div class="col-md-4"> <h2>侧边栏</h2> <p>这里是侧边栏内容...</p> </div> </div> </div>这个布局在手机上会自动堆叠,在平板和桌面上则会并排显示。
- 容器:
PHP与HTML的整合
使用PHP的 include 或 require 函数来复用公共代码。
示例 (index.php):
<?php
// 包含头部
include 'includes/header.php';
?>
<div class="container">
<h1>欢迎来到我的手机网站</h1>
<p>这是一个响应式设计的网站。</p>
</div>
<?php
// 包含底部
include 'includes/footer.php';
?>
示例 (includes/header.php):
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">我的手机网站</title>
<!-- 引入Bootstrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- 引入自定义样式 -->
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<header>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="index.php">Logo</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item"><a class="nav-link" href="index.php">首页</a></li>
<li class="nav-item"><a class="nav-link" href="about.php">关于我们</a></li>
<li class="nav-item"><a class="nav-link" href="contact.php">联系我们</a></li>
</ul>
</div>
</div>
</nav>
</header>
注意:这里使用了Bootstrap的导航栏组件,它自带响应式折叠功能。
数据库操作
PHP常与MySQL数据库配合使用。
a) 数据库连接 (includes/db.php):
<?php
$servername = "localhost";
$username = "root"; // XAMPP默认用户名
$password = ""; // XAMPP默认密码
$dbname = "my_mobile_db"; // 你需要先创建这个数据库
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
b) 读取数据 (例如在首页显示文章列表):
<?php
include 'includes/header.php';
include 'includes/db.php';
// 查询数据库
$sql = "SELECT id, title, content, created_at FROM articles ORDER BY created_at DESC";
$result = $conn->query($sql);
?>
<div class="container mt-4">
<h1>最新文章</h1>
<?php
if ($result->num_rows > 0) {
// 输出每条数据
while($row = $result->fetch_assoc()) {
echo '<div class="card mb-3">';
echo '<div class="card-body">';
echo '<h5 class="card-title">' . htmlspecialchars($row["title"]) . '</h5>';
echo '<p class="card-text">' . substr(htmlspecialchars($row["content"]), 0, 150) . '...</p>';
echo '<a href="article.php?id=' . $row["id"] . '" class="btn btn-primary">阅读更多</a>';
echo '</div>';
echo '</div>';
}
} else {
echo "暂无文章";
}
$conn->close();
?>
</div>
<?php
include 'includes/footer.php';
?>
htmlspecialchars(): 用于防止XSS攻击,将特殊字符转换为HTML实体。substr(): 截取字符串,用于显示文章摘要。
第四部分:高级主题与优化
检测移动设备
虽然响应式设计是首选,但有时你可能需要为移动设备提供完全不同的内容,你可以使用PHP的 $_SERVER['HTTP_USER_AGENT'] 来检测设备。
function isMobile() {
// 如果有HTTP_X_WAP_PROFILE头,则一定是移动设备
if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
return true;
}
// 如果通过HTTP_VIA判断,是移动设备
if (isset($_SERVER['HTTP_VIA'])) {
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
}
// 脑残法判断手机浏览器
if (strpos($_SERVER['HTTP_ACCEPT'], "vnd.wap.wml") !== false) {
return true;
}
// 脑残法判断手机浏览器
if (strpos($_SERVER['HTTP_USER_AGENT'], "Mobile") !== false || strpos($_SERVER['HTTP_USER_AGENT'], "Android") !== false || strpos($_SERVER['HTTP_USER_AGENT'], "iPhone") !== false || strpos($_SERVER['HTTP_USER_AGENT'], "iPad") !== false || strpos($_SERVER['HTTP_USER_AGENT'], "iPod") !== false) {
return true;
}
return false;
}
if (isMobile()) {
// 加载移动端专用页面或内容
// include 'mobile_home.php';
} else {
// 加载桌面端页面
// include 'desktop_home.php';
}
注意: 现代开发中,这种方法已不常用,优先推荐响应式设计。
性能优化
- 压缩CSS和JS: 使用工具(如 Gulp, Webpack)或在线服务压缩你的代码。
- 图片优化: 使用现代图片格式(如WebP),并针对不同尺寸的设备提供不同大小的图片(
<picture>标签或srcset属性)。 - 缓存: 启用浏览器缓存和服务器缓存(如OPcache),减少服务器负载和页面加载时间。
第五部分:部署
当你完成开发并测试后,就可以将网站部署到线上服务器了。
- 购买域名和虚拟主机: 选择一个可靠的虚拟主机提供商(如阿里云、腾讯云、Bluehost等),确保支持PHP和MySQL。
- 上传文件: 使用FTP(如FileZilla)或虚拟主机提供的控制面板,将你本地的
mobile_site文件夹中的所有内容上传到服务器的Web根目录(通常是public_html或www)。 - 导入数据库: 在本地phpMyAdmin中导出你的数据库(
.sql文件),然后在虚拟主机提供的数据库管理工具中导入。 - 修改数据库配置: 将
includes/db.php中的数据库连接信息修改为线上服务器的信息(主机名、用户名、密码、数据库名)。 - 域名解析: 在你的域名提供商后台,将域名解析到你的服务器IP地址。
- 测试: 通过你的域名访问网站,确保一切正常运行。
总结与资源
这份教程为你提供了一个从零开始构建PHP响应式手机网站的完整路径,关键在于掌握 响应式设计原理,善用 Bootstrap 等框架提高效率,并理解 PHP与数据库 的基本交互。
推荐学习资源:
- W3Schools: https://www.w3schools.com/ (HTML, CSS, PHP, MySQL的绝佳入门教程)
- Bootstrap官方文档: https://getbootstrap.com/docs/ (学习Bootstrap组件和网格系统的最佳资源)
- MDN Web Docs: https://developer.mozilla.org/zh-CN/ (权威的Web技术文档)
- PHP官方手册: https://www.php.net/manual/zh/ (PHP函数和语法的权威参考)
祝你开发顺利!
