PHP 入门指南:特性、历史、应用与安装
1. PHP 简介
PHP 是一种简单而强大的语言,专为创建 HTML 内容而设计。它具有以下特点:
-
多用途
:可用于服务器端脚本编写和命令行脚本执行。
-
跨平台
:能在多种操作系统和主流 Web 服务器上运行。
-
灵活性高
:可生成多种文档格式,如 PDF、图像等。
-
数据库支持广泛
:支持各种主流和新兴数据库。
-
PEAR 库
:提供用于执行常见任务的代码库。
1.1 PHP 的主要用途
PHP 主要有两种使用方式:
-
服务器端脚本
:最初设计用于创建动态 Web 内容,如今仍最适合此任务。通过 PHP 解析器和 Web 服务器,可生成 HTML、处理数据库连接、生成 XML 文档、图形和 PDF 文件等。
-
命令行脚本
:可像 Perl、awk 或 Unix shell 一样从命令行运行脚本,用于系统管理任务,如备份和日志解析,甚至可执行一些 CRON 作业类型的脚本。
1.2 PHP 的运行环境
PHP 具有广泛的运行环境支持:
-
操作系统
:支持 Unix 变体(如 Linux、FreeBSD、Ubuntu、Debian 和 Solaris)、Windows 和 macOS。
-
Web 服务器
:可与所有主流 Web 服务器配合使用,如 Apache、Nginx 和 OpenBSD 服务器,甚至在 Azure 和 Amazon 等云环境中也越来越受欢迎。
1.3 PHP 的灵活性和数据库支持
- 灵活性 :不仅限于输出 HTML 或其他文本文件,可生成任何文档格式,内置支持生成 PDF 文件和 GIF、JPEG、PNG 图像。
- 数据库支持 :支持所有主要数据库(如 MySQL、PostgreSQL、Oracle、Sybase、MS - SQL、DB2 和 ODBC 兼容数据库),甚至许多不太常见的数据库,还支持 CouchDB 和 MongoDB 等 NoSQL 风格的数据库。使用 PHP 创建包含数据库动态内容的网页非常简单。
1.4 PEAR 库
PHP 通过 PHP 扩展和应用程序存储库(PEAR)提供了一个用于执行常见任务的代码库,如数据库抽象、错误处理等。PEAR 是一个可重用 PHP 组件的框架和分发系统。
2. PHP 的历史演变
2.1 PHP 1.0
1994 年,Rasmus Lerdorf 首次构思了 PHP。1995 年 6 月,PHP 1.0 发布,它是一组用 C 语言编写的小型紧密 CGI 二进制文件,具有以下功能:
-
日志记录
:将页面访问记录到私有日志文件中,支持实时查看日志信息,并提供友好的日志信息界面。
-
访问控制
:可根据用户域名禁止访问、对页面进行密码保护,还能基于用户电子邮件地址和引用 URL 跟踪访问。
-
表单处理
:轻松创建和显示表单,并能在后续文档中使用表单信息。
-
服务器端包含
:无需服务器支持即可执行服务器端包含。
使用这些工具无需 root 访问权限、服务器端包含功能、对 Perl 或 Tcl 等脚本解释器的访问权限以及对 httpd 日志文件的访问权限,唯一要求是能够执行自己的 CGI 程序。
2.2 PHP 2.0(PHP/FI)
1996 年 4 月,PHP 2.0(PHP/FI)发布,这是第一个被称为服务器端 HTML 嵌入式脚本语言的版本。它具有以下特点:
-
日志和限制
:内置访问日志记录和访问限制功能,可将访问信息记录到 dbm 或 mSQL 数据库中,方便后续分析。
-
数据库支持
:支持嵌入式 SQL 查询到 mSQL 和/或 Postgres95 后端数据库。
-
其他特性
:支持 DBM、RFC - 1867 文件上传、变量、数组、关联数组、用户定义函数(含静态变量和递归)、条件语句和循环、扩展正则表达式、原始 HTTP 头控制以及动态 GIF 图像创建。
2.3 PHP 3.0
1998 年 6 月,PHP 3.0 发布。该版本支持所有主要操作系统(如 Windows 95/NT、大多数 Unix 版本和 Macintosh)和 Web 服务器(如 Apache、Netscape 服务器、WebSite Pro 和 Microsoft Internet Information Server),还支持广泛的数据库,包括 Oracle、Sybase、Solid、MySQ、mSQL 和 PostgreSQL 以及 ODBC 数据源。新特性包括持久数据库连接、对 SNMP 和 IMAP 协议的支持以及用于扩展语言功能的改进 C API。
2.4 PHP 4.0
PHP 4.0 的发布是由于一些开发人员希望对 PHP 的架构进行一些根本性的改变,包括抽象语言和 Web 服务器之间的层、添加线程安全机制以及更高级的两阶段解析/执行标签解析系统。这个新的解析器主要由 Zeev 和 Andi 编写,被命名为 Zend 引擎。经过大量开发人员的努力,PHP 4.0 于 2000 年 5 月 22 日发布。
2.5 PHP 7.3
截至本书出版时,PHP 7.3 已发布一段时间,有了一些小的“点”版本更新,当前版本的稳定性相当高。此版本在服务器端代码处理方面有了一些重大进展,还包含了许多其他小的更改、函数添加和功能增强。
2.6 PHP 历史版本对比表
| 版本 | 发布时间 | 特点 |
|---|---|---|
| PHP 1.0 | 1995 年 6 月 | 一组 C 语言编写的 CGI 二进制文件,提供日志、访问控制、表单处理等功能 |
| PHP 2.0(PHP/FI) | 1996 年 4 月 | 服务器端 HTML 嵌入式脚本语言,支持数据库查询、日志记录到数据库等 |
| PHP 3.0 | 1998 年 6 月 | 支持多操作系统和 Web 服务器,广泛的数据库支持,新特性如持久数据库连接等 |
| PHP 4.0 | 2000 年 5 月 22 日 | 架构改进,引入 Zend 引擎 |
| PHP 7.3 | - | 服务器端代码处理有重大进展,包含许多小更改和功能增强 |
2.7 PHP 发展历程 mermaid 流程图
graph LR
A[PHP 1.0 - 1995 年 6 月] --> B[PHP 2.0(PHP/FI) - 1996 年 4 月]
B --> C[PHP 3.0 - 1998 年 6 月]
C --> D[PHP 4.0 - 2000 年 5 月 22 日]
D --> E[PHP 7.3]
3. PHP 的广泛应用
根据 W3Techs 截至 2019 年 3 月的统计,79% 的受访网站使用 PHP,且版本 5.0 仍是最广泛使用的版本。W3Techs 的调查方法是选择全球流量和人气排名前 1000 万的网站,这表明 PHP 的应用范围非常广泛。
4. PHP 的安装和配置
4.1 安装
PHP 可用于多种操作系统和平台,建议查阅 PHP 文档,找到最适合自己使用的环境,并遵循相应的设置说明。
4.2 配置
- 配置文件 :PHP 的配置设置通常保存在一个名为 php.ini 的文件中,该文件中的设置控制着 PHP 功能的行为,如会话处理等。
- 更改配置 :若要更改 PHP 的配置方式,需修改 php.ini 文件并重启 Web(Apache)服务器,每次更改 PHP 环境后,都必须重启 Web 服务器以使更改生效。
4.3 安装和配置步骤列表
- 查阅 PHP 文档,确定适合自己的环境。
- 按照文档说明进行 PHP 安装。
- 找到 php.ini 文件,根据需求修改配置。
- 保存修改后的 php.ini 文件。
- 重启 Web(Apache)服务器,使配置更改生效。
5. PHP 实际应用示例
5.1 处理表单数据
在 Web 开发中,处理表单数据是常见的任务。以下是一个简单的 PHP 示例,用于处理 HTML 表单提交的数据:
<!DOCTYPE html>
<html>
<body>
<form action="process.php" method="post">
姓名: <input type="text" name="name"><br>
邮箱: <input type="email" name="email"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
echo "你输入的姓名是: ". $name. "<br>";
echo "你输入的邮箱是: ". $email;
}
?>
这个示例中,HTML 表单将数据提交到
process.php
文件,PHP 脚本接收并显示提交的数据。
5.2 与数据库交互
PHP 支持多种数据库,这里以 MySQL 为例,展示如何连接数据库、插入数据和查询数据:
<?php
// 数据库连接信息
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: ". $conn->connect_error);
}
// 插入数据
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'johndoe@example.com')";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: ". $sql. "<br>". $conn->error;
}
// 查询数据
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "ID: ". $row["id"]. " - 姓名: ". $row["name"]. " - 邮箱: ". $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
// 关闭连接
$conn->close();
?>
5.3 创建图形
PHP 内置支持生成图像,以下是一个简单的示例,用于创建一个包含文本的 PNG 图像:
<?php
// 创建图像
$image = imagecreatetruecolor(200, 100);
// 设置背景颜色
$background_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $background_color);
// 设置文本颜色
$text_color = imagecolorallocate($image, 0, 0, 0);
// 添加文本
imagestring($image, 5, 50, 40, "Hello, PHP!", $text_color);
// 输出图像
header('Content-type: image/png');
imagepng($image);
// 销毁图像资源
imagedestroy($image);
?>
6. PHP 代码规范和最佳实践
6.1 代码规范
- 注释 :在代码中添加适当的注释,解释代码的功能和逻辑,提高代码的可读性。
- 命名规范 :变量、函数和类的命名应具有描述性,遵循一定的命名规则,如驼峰命名法或下划线命名法。
- 缩进和格式化 :使用一致的缩进和格式化风格,使代码结构清晰。
6.2 最佳实践
-
错误处理
:使用
try-catch块捕获和处理异常,避免程序因错误而崩溃。 - 安全性 :对用户输入进行过滤和验证,防止 SQL 注入和 XSS 攻击。
- 性能优化 :避免不必要的数据库查询和循环,使用缓存技术提高性能。
6.3 代码规范和最佳实践列表
| 类别 | 具体内容 |
|---|---|
| 代码规范 | 注释、命名规范、缩进和格式化 |
| 最佳实践 | 错误处理、安全性、性能优化 |
7. 总结
PHP 是一种功能强大、灵活且广泛应用的编程语言,适用于服务器端脚本编写和命令行脚本执行。它具有跨平台、支持多种数据库和生成多种文档格式的特点。通过回顾 PHP 的历史演变,我们可以看到它不断发展和完善的过程。在实际应用中,PHP 可以轻松处理表单数据、与数据库交互和创建图形。同时,遵循代码规范和最佳实践可以提高代码的质量和性能。希望本文能帮助你更好地了解和使用 PHP。
7.1 PHP 关键特性总结表
| 特性 | 描述 |
|---|---|
| 多用途 | 服务器端脚本和命令行脚本 |
| 跨平台 | 支持多种操作系统和 Web 服务器 |
| 灵活性 | 可生成多种文档格式 |
| 数据库支持 | 支持主流和新兴数据库 |
| PEAR 库 | 提供常见任务代码库 |
7.2 PHP 学习和应用流程 mermaid 流程图
graph LR
A[学习 PHP 基础] --> B[了解历史和特性]
B --> C[实践应用示例]
C --> D[遵循代码规范和最佳实践]
D --> E[开发实际项目]

1065

被折叠的 条评论
为什么被折叠?



