PHP 标准库:完整概述
PHP 标准库(Standard PHP Library, SPL)是一组内置的类、接口和函数,在每个 PHP 发行版中均可使用,无需安装额外扩展。它涵盖关键领域:字符串处理、数组处理、文件系统、日期、正则表达式,以及数据结构和迭代器。在本文中,我们将通过实际示例详细解析标准库的主要组件。
1. 字符串处理函数
PHP 提供了数十个用于字符串操作的内置函数。让我们看看最常用的几个:
strlen()— 返回字符串的长度。strpos()— 查找子字符串首次出现的位置。substr()— 提取字符串的一部分。str_replace()— 替换所有出现的子字符串。explode()和implode()— 通过分隔符拆分/连接字符串。
<?php$text = "Привет, мир! Добро пожаловать в PHP.";echo strlen($text); // 35echo strpos($text, "мир"); // 8echo substr($text, 0, 7); // "Привет"echo str_replace("мир", "вселенная", $text); // "Привет, вселенная! Добро пожаловать в PHP."print_r(explode(" ", $text)); // Array ( [0] => Привет, [1] => мир! [2] => Добро [3] => пожаловать [4] => в [5] => PHP. )?>2. 数组处理函数
数组是 PHP 的基础。标准库包含用于处理数组的强大函数:
array_map()— 对每个元素应用回调函数。array_filter()— 根据条件过滤元素。array_merge()— 合并数组。array_keys()和array_values()— 获取键/值。sort()和rsort()— 对数组进行排序。
<?php$numbers = [1, 2, 3, 4, 5, 6];// 每个元素加倍$doubled = array_map(fn($n) => $n * 2, $numbers);print_r($doubled); // [2, 4, 6, 8, 10, 12]
// 只保留偶数$even = array_filter($numbers, fn($n) => $n % 2 === 0);print_r($even); // [1 => 2, 3 => 4, 5 => 6]
$merged = array_merge(['a' => 1, 'b' => 2], ['c' => 3, 'd' => 4]);print_r($merged); // ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]?>3. 文件与文件系统操作
PHP 提供了无需外部库即可读取、写入和管理文件的函数:
fopen(),fwrite(),fread(),fclose()— 底层操作。file_get_contents()和file_put_contents()— 简单操作。file_exists(),is_dir(),mkdir()— 检查与创建目录。scandir()— 获取文件夹中的文件列表。
<?php// 写入文件$data = "Hello, file!";file_put_contents('example.txt', $data);
// 读取文件$content = file_get_contents('example.txt');echo $content; // Hello, file!
// 创建目录if (!file_exists('uploads')) { mkdir('uploads', 0755, true);}
// 文件列表$files = scandir('.');print_r($files);?>4. 日期与时间处理
DateTime 类以及 date()、time() 函数可用于处理时间戳:
<?php// 当前日期echo date('Y-m-d H:i:s'); // 2025-03-25 14:30:00
// 使用 DateTime$date = new DateTime('2025-12-31');$date->modify('+1 month');echo $date->format('d.m.Y'); // 31.01.2026
// 日期差异$now = new DateTime