PHP 入门:从零开始构建动态网页
PHP 是一门专为 Web 开发设计的脚本语言,易学且功能强大。全球超过 75% 的网站(包括 Facebook、WordPress)都使用了 PHP。这篇入门指南将带你从环境搭建开始,一步步学会用 PHP 制作动态网页。
一、PHP 是什么
PHP(Hypertext Preprocessor)是一种运行在服务器端的脚本语言,可以嵌入到 HTML 中。它能处理表单、访问数据库、生成动态页面内容,是构建网站后台的利器。
一个典型的 PHP 文件长这样:
<!DOCTYPEhtml><html><head><title>我的PHP页面</title></head><body><h1><?phpecho"你好,PHP!";?></h1><p>今天的日期是:<?phpechodate('Y-m-d');?></p></body></html>服务器会先执行 <?php ... ?> 内的代码,把结果嵌入 HTML,然后将最终页面发给浏览器。访问者看到的只是纯 HTML,看不到 PHP 源码。
二、环境搭建
学习 PHP 需要在电脑上搭建一个 Web 服务器环境。最推荐的一键集成包:
· XAMPP(Windows/Linux/macOS): 包含 Apache + PHP + MySQL
· MAMP(macOS): 功能类似
· 或者直接使用 PHP 内置开发服务器(适合轻量测试)
用 PHP 内置服务器快速起步
- 确认安装 PHP(命令行输入 php -v 查看版本,建议 PHP 8.0+)。
- 新建项目文件夹 my_php_app,在里面创建 index.php。
- 在终端进入该文件夹,运行:php -S localhost:8000
- 浏览器访问 http://localhost:8000,即可看到页面。
内置服务器适合学习,但没有 MySQL,后面数据库部分可用 XAMPP。
三、第一个程序
在 index.php 中写入:
<?phpecho"Hello, PHP!";phpinfo();// 查看 PHP 配置信息(学完可删除)?>echo 用来输出内容,每条语句以 ; 结尾。如果文件里只有 PHP 代码,结尾的 ?> 可以省略,推荐省略以避免输出意外空白。
四、基础语法
变量与数据类型
变量以 $ 开头,无需声明类型。
<?php$name="小明";// 字符串$age=28;// 整数$price=19.99;// 浮点数$is_student=true;// 布尔值$languages=["PHP","Python","JavaScript"];// 数组echo"{$name}今年{$age}岁";// 双引号解析变量echo'单引号不解析变量';// 纯字符串?>· 双引号字符串会解析变量和转义符 \n,单引号则原样输出。
· 数组后面会详细说明。
字符串拼接
用 . 连接字符串:
echo"欢迎, ".$name."!";数组
PHP 支持两种数组:索引数组和关联数组(类似字典)。
// 索引数组$fruits=["苹果","香蕉","橘子"];echo$fruits[0];// 苹果// 关联数组(键值对)$user=["name"=>"小红","email"=>"xiaohong@example.com","age"=>25];echo$user["name"];// 小红条件与循环
// if-elseif($age>=18){echo"已成年";}else{echo"未成年";}// switchswitch($user["role"]??"guest"){case"admin":echo"管理员面板";break;default:echo"普通用户";}// for 循环for($i=0;$i<count($fruits);$i++){echo"<li>{$fruits[$i]}</li>";}// foreach 遍历数组(最常用)foreach($useras$key=>$value){echo"{$key}:{$value}<br>";}?? 是空合并运算符,如果左侧不存在或为 null,使用右侧默认值。
五、函数
functiongreet($name,$time="早上"){return"{$time}好,{$name}!";}echogreet("小红");// 早上好,小红!echogreet("小明","晚上");// 晚上好,小明!参数可以有默认值,return 返回值。PHP 内置了大量函数,如 date()、strlen()、count()、isset() 等。
六、表单处理——让网页互动起来
这是 PHP 最核心的用途:接收用户提交的数据。
创建表单(form.html)
<formaction="submit.php"method="post"><label>姓名:<inputtype="text"name="username"></label><label>密码:<inputtype="password"name="password"></label><buttontype="submit">提交</button></form>处理提交(submit.php)
<?phpif($_SERVER["REQUEST_METHOD"]=="POST"){$username=$_POST["username"]??"";$password=$_POST["password"]??"";// 简单验证if(empty($username)||strlen($password)<6){echo"请输入有效信息。";}else{echo"欢迎你,{$username}!";// 实际应用中会对密码进行哈希处理}}?>·POST存放以POST方法提交的表单数据,_POST 存放以 POST 方法提交的表单数据,POST存放以POST方法提交的表单数据,_GET 存放 URL 参数。
· 永远不要信任用户输入,要过滤和验证。htmlspecialchars() 可防止 XSS 攻击。
七、连接 MySQL 数据库
多数动态网站都需要存储和读取数据。PHP 推荐使用 PDO(PHP Data Objects) 扩展,它提供了统一的接口且支持预处理语句防 SQL 注入。
准备数据库(用 phpMyAdmin 或命令行)
假设有一个 blog 数据库,内含 posts 表:id, title, content, created_at。
使用 PDO 连接和查询
<?php$host='127.0.0.1';$db='blog';$user='root';$pass='';$charset='utf8mb4';$dsn="mysql:host=$host;dbname=$db;charset=$charset";$options=[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC,];try{$pdo=newPDO($dsn,$user,$pass,$options);}catch(PDOException$e){die("数据库连接失败:".$e->getMessage());}// 查询并显示文章列表$stmt=$pdo->query("SELECT title, created_at FROM posts ORDER BY created_at DESC");while($row=$stmt->fetch()){echo"<h2>{$row['title']}</h2>";echo"<small>{$row['created_at']}</small>";}// 安全的插入操作(使用预处理)$title="新文章标题";$content="文章内容...";$sql="INSERT INTO posts (title, content, created_at) VALUES (?, ?, NOW())";$stmt=$pdo->prepare($sql);$stmt->execute([$title,$content]);echo"新文章ID:".$pdo->lastInsertId();?>· PDO 预处理将 SQL 结构与数据分离,从根本上防止 SQL 注入。
· 生产环境中数据库密码不可直接写在代码中,应使用环境变量或配置文件。
八、面向对象编程(OOP)简介
PHP 完整支持面向对象,理解基础对后续学习框架很有帮助。
classUser{private$name;private$email;publicfunction__construct($name,$email){$this->name=$name;$this->email=$email;}publicfunctiongreet(){return"我是{$this->name},邮箱{$this->email}";}}$user=newUser("小华","hua@example.com");echo$user->greet();· public、private、protected 控制访问权限。
· __construct 是构造方法,对象创建时自动调用。
九、文件组织与模板
混杂 HTML 与 PHP 会让代码难以维护,可以用简单的模板技巧分离逻辑与显示。
一种基础做法:在 index.php 中获取数据,然后引入模板文件。
<!--header.php--><!DOCTYPEhtml><html><head><title>我的网站</title></head><body><header>欢迎</header><!--footer.php--><footer>版权 ©2026</footer></body></html><!--blog.php--><?php$posts=getPostsFromDB();// 假设函数获取文章require'header.php';foreach($postsas$post){echo"<h2>{$post['title']}</h2>";}require'footer.php';?>更成熟的项目会使用 MVC 框架(如 Laravel、Symfony),它们提供了路由、模板引擎等。
十、部署与发布
开发完成后,你的 PHP 应用需要运行在支持 PHP 的 Web 服务器上:
· Apache/Nginx + PHP-FPM 是生产环境标配。
· 云平台如阿里云、腾讯云,以及专门托管 PHP 的服务(如 Heroku、Alwaysdata)都能快速部署。
· 将代码上传到服务器指定目录(如 www/ 或 public_html/),确保 PHP 扩展已安装。
十一、学习资源
· 官方文档:php.net/manual (中文文档非常完善)
· 现代 PHP 教程:《PHP The Right Way》(phptherightway.com)
· 练习平台:Laravel 的入门教程、Codecademy PHP 课程
· 社区:PHP 中文网、SegmentFault、Stack Overflow
PHP 的入门门槛很低,却能支撑起庞大复杂的系统。通过掌握变量、函数、表单处理和数据库连接这几大基石,你就已经能够独立开发留言板、博客、产品展示等动态网站了。随着学习的深入,可以逐步引入 Composer 包管理和 Laravel 等框架,真正踏入专业 Web 开发的大门。现在,就动手创建你的第一个 PHP 应用吧!
