PHP,全称为“PHP: Hypertext Preprocessor”(超文本预处理器),是一种广泛用于网页开发的开源脚本语言。自1994年诞生以来,PHP凭借其简单、灵活的特性,成为了搭建动态网站的首选工具之一,支持了无数知名网站的背后运行,如WordPress、Facebook早期版本等。
## PHP基础
### 什么是PHP?
PHP是一种嵌入到HTML中的服务器端脚本语言,这意味着它在服务器上执行,而非客户端。PHP可以处理表单数据、操作数据库、生成动态网页内容等,为网页开发者提供了强大的功能支持。
### 安装与配置
开始使用PHP之前,你需要确保你的开发环境已经配置好。大多数Web服务器(如Apache、Nginx)都支持PHP,你还需要安装PHP解析器。对于初学者,使用XAMPP或WAMP这样的集成包可以快速搭建PHP环境。
### 基本语法
PHP代码通常被`<?php ... ?>`标签包裹在HTML中,或者直接保存为`.php`文件。
```php
<?php
echo "Hello, World!";
?>
```
上述代码将在页面上输出“Hello, World!”。
## 精彩案例:简易留言本
接下来,我们通过创建一个简单的留言本来实践PHP。这个例子将涵盖接收用户输入、存储到数据库、以及显示留言的基本流程。
### 准备工作
确保你有一个数据库(如MySQL)可用,并创建一个名为`messages`的表,包含`id`(主键,自动增长)、`author`(留言者名字)、`content`(留言内容)、`datetime`(留言时间)四个字段。
CREATE TABLE `messages` (
`id` INT UNSIGNED AUTO_INCREMENT,
`author` VARCHAR(100) NOT NULL,
`content` TEXT NOT NULL,
`datetime` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
### HTML表单
首先,创建一个简单的HTML表单供用户提交留言:
```html
<!DOCTYPE html>
<html>
<head>
<title>简易留言本</title>
</head>
<body>
<h2>留言区</h2>
<form action="submit_message.php" method="post">
名字:<input type="text" name="author"><br>
留言:<textarea name="content"></textarea><br>
<input type="submit" value="提交">
</form>
</body>
</html>
连接数据库
<?php
// 连接数据库
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取表单数据
$author = $_POST['author'];
$content = $_POST['content'];
$datetime = date("Y-m-d H:i:s");
// 插入数据
$sql = "INSERT INTO messages (author, content, datetime) VALUES ('$author', '$content', '$datetime')";
if ($conn->query($sql) === TRUE) {
echo "留言提交成功!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
显示留言
<?php
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$sql = "SELECT * FROM messages ORDER BY datetime DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "留言者:" . $row["author"]. " - 内容:" . $row["content"]. " - 时间:" . $row["datetime"]. "<br>";
}
} else {
echo "还没有留言。";
}
$conn->close();
?>