Стандартная библиотека PHP: полный обзор
Стандартная библиотека PHP (Standard PHP Library, SPL) — это набор встроенных классов, интерфейсов и функций, доступных в каждом дистрибутиве PHP без необходимости установки дополнительных расширений. Она охватывает ключевые области: обработку строк, массивов, файловой системы, дат, регулярных выражений, а также структуры данных и итераторы. В этой статье мы подробно разберём основные компоненты стандартной библиотеки с практическими примерами.
1. Функции для работы со строками
PHP предоставляет десятки встроенных функций для манипуляции строками. Рассмотрим наиболее часто используемые:
strlen()— возвращает длину строки.strpos()— находит позицию первого вхождения подстроки.substr()— извлекает часть строки.str_replace()— заменяет все вхождения подстроки.explode()иimplode()— разбивают/соединяют строки через разделитель.
<?php
$text = "Привет, мир! Добро пожаловать в PHP.";
echo strlen($text); // 35
echo strpos($text, "мир"); // 8
echo 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()— применяет callback к каждому элементу.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