从零开始,手把手教你实现一个PHP程序
PHP(PHP: Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合Web开发,它可以嵌入到HTML中,也可以用于命令行脚本和桌面应用程序,如果你是编程新手,或者想从其他语言转向PHP,本文将为你提供一个清晰、分步的指南,带你了解如何从零开始实现一个PHP程序。
第一步:准备工作 - 搭建PHP运行环境
在编写和运行PHP代码之前,你需要一个能让PHP代码执行的环境,对于Web开发来说,这通常包括一个Web服务器(如Apache或Nginx)和PHP解释器,最简单、最推荐新手使用的方法是集成环境包。
推荐工具:
- XAMPP: 跨平台(支持Windows, macOS, Linux),集成了Apache、MySQL、PHP和Perl,一键安装,开箱即用。
- WampServer (仅Windows): 专为Windows设计,同样是Apache + MySQL + PHP的集成环境。
操作步骤:
- 下载与安装: 访问XAMPP官网(https://www.apachefriends.org/)下载适合你操作系统的版本,然后按照安装向导进行安装。
- 启动服务: 安装完成后,打开XAMPP Control Panel,点击 "Start" 按钮来启动Apache和MySQL服务,看到绿色的 "Running" 字样,说明环境已经准备就绪。
你的本地计算机已经具备了运行PHP程序的能力。
第二步:你的第一个PHP程序 - "Hello, World!"
这是编程世界的传统入门仪式,让我们从最简单的例子开始。
操作步骤:
-
创建项目目录: 在你的硬盘上创建一个文件夹,
C:\xampp\htdocs\my_first_php
(Windows) 或/Applications/XAMPP/htdocs/my_first_php
(macOS)。 -
创建PHP文件: 使用任何文本编辑器(如VS Code、Sublime Text,甚至记事本)创建一个新文件,将其命名为
index.php
。 -
编写代码: 在
index.php
文件中输入以下代码:<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>我的第一个PHP程序</title> </head> <body> <h1>欢迎来到PHP世界!</h1> <?php // 这是一个PHP代码块 echo "Hello, World!"; ?> </body> </html>
-
运行程序:
- 确保XAMPP中的Apache服务正在运行。
- 打开你的网页浏览器(如Chrome、Firefox)。
- 在地址栏输入
http://localhost/my_first_php/
然后按回车。
你会看到什么?
浏览器会显示一个标题为“我的第一个PHP程序”的页面,并在下方显示 "Hello, World!",恭喜你,你已经成功运行了你的第一个PHP程序!
代码解释:
<?php ... ?>
:这是PHP代码的标记,所有PHP代码都必须写在这个标记之间。// 这是一个PHP代码块
:这是单行注释,PHP解释器会忽略它,用于解释代码。echo "Hello, World!";
:这是PHP的输出语句。echo
命令会将引号内的字符串输出到页面上,注意,PHP语句必须以分号
第三步:处理表单数据 - 实现一个简单的交互
静态页面没有太大意义,PHP的强大之处在于它能处理用户提交的数据,让我们创建一个简单的HTML表单,然后用PHP来处理它。
创建HTML表单 (form.html):
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8">用户信息表单</title> </head> <body> <h2>请输入你的名字</h2> <form action="welcome.php" method="post"> 你的名字: <input type="text" name="username"> <input type="submit" value="提交"> </form> </body> </html>
代码解释:
<form action="welcome.php" method="post">
:这个表单会将数据提交给welcome.php
文件,并使用POST
方法发送数据。<input type="text" name="username">
:这是一个文本输入框,name="username"
是关键,它为这个输入框指定了一个标识,PHP将用这个名字来获取其值。
创建处理脚本 (welcome.php):
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8">欢迎页面</title> </head> <body> <?php // 使用 $_POST 超全局数组来获取通过POST方法提交的数据 // isset() 函数用于检查变量是否已设置且不为空 if (isset($_POST['username']) && !empty($_POST['username'])) { $name = $_POST['username']; echo "<h1>你好, " . $name . "!欢迎来到PHP程序的世界。</h1>"; } else { echo "<h1>错误:你没有输入名字。</h1>"; echo "<a href='form.html'>返回重新输入</a>"; } ?> </body> </html>
代码解释:
$_POST
:这是一个PHP超全局变量数组,用于收集通过method="post"
发送的表单数据。$_POST['username']
:通过输入框的name
属性 "username" 来获取用户输入的值。isset()
和!empty()
:这是两个非常重要的函数,用于检查用户是否真的提交了数据,而不是提交了一个空表单,这可以避免很多潜在的错误。$name = $_POST['username'];
:将获取到的用户名赋值给一个PHP变量$name
。echo "<h1>你好, " . $name . "!</h1>";
:使用点号 来连接字符串和变量,最终输出个性化的欢迎信息。
运行流程:
- 在浏览器中访问
http://localhost/my_first_php/form.html
。 - 在输入框中输入你的名字,点击“提交”。
- 页面会跳转到
welcome.php
,并显示根据你输入的名字生成的个性化欢迎信息。
第四步:连接数据库 - 实现动态数据存储
Web应用通常需要存储数据,比如用户信息、文章、评论等,PHP与MySQL数据库是天作之合,让我们在上面的例子基础上,将用户名保存到数据库中。
创建数据库和表:
-
打开XAMPP Control Panel,点击 "Admin" 按钮旁边的MySQL,这将打开phpMyAdmin。
-
在phpMyAdmin中,点击“新建”,创建一个名为
my_app
的数据库。 -
创建成功后,选择
my_app
数据库,在“SQL”选项卡中执行以下SQL语句来创建一个用户表:CREATE TABLE users ( id INT(11) AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
修改 welcome.php
以连接数据库并插入数据:
<?php // --- 数据库配置 --- $servername = "localhost"; $username = "root"; // XAMPP默认用户名 $password = ""; // XAMPP默认密码为空 $dbname = "my_app"; // --- 创建连接 --- $conn = new mysqli($servername, $username, $password, $dbname); // --- 检查连接是否成功 --- if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // --- 处理表单提交 --- if (isset($_POST['username']) && !empty($_POST['username'])) { $name = $_POST['username']; // 使用预处理语句来防止SQL注入 $stmt = $conn->prepare("INSERT INTO users (username) VALUES (?)"); $stmt->bind_param("s", $name); // "s" 表示参数是字符串 if ($stmt->execute()) { echo "<h1>你好, " . htmlspecialchars($name) . "!你的信息已成功保存。</h1>"; } else { echo "<h1>错误:数据保存失败。</h1>"; } $stmt->close(); } else { echo "<h1>错误:你没有输入名字。</h1>"; echo "<a href='form.html'>返回重新输入</a>"; } // --- 关闭连接 --- $conn->close(); ?>
代码解释:
- 数据库连接: 使用
new mysqli()
创建一个到MySQL数据库的连接对象。 - 预处理语句: 这是防止SQL注入攻击的最佳
还没有评论,来说两句吧...