5.07. Готовые Функции и константы PHP
Готовые Функции и константы PHP
PHP предоставляет большое количество встроенных функций и констант для решения самых разных задач: от работы с массивами до отправки почты, парсинга XML и архивации ZIP.
Error
Функции и константы для управления обработкой ошибок: генерация пользовательских ошибок, настройка уровня отчетности, регистрация пользовательских обработчиков.
| Функция / Константа | Описание | Пример |
|---|---|---|
trigger_error() | Вызывает пользовательскую ошибку | trigger_error("Ошибка подключения", E_USER_WARNING); |
error_reporting() | Устанавливает уровень отчетности об ошибках | error_reporting(E_ALL); |
set_error_handler() | Регистрирует пользовательский обработчик ошибок | set_error_handler(fn() => "Ошибка"); |
restore_error_handler() | Восстанавливает предыдущий обработчик ошибок | restore_error_handler(); |
E_ERROR, E_WARNING, E_NOTICE, E_DEPRECATED | Типы ошибок | if ($errno == E_USER_ERROR) { ... } |
Array
Операции с массивами: преобразование, фильтрация, агрегация элементов, объединение массивов, проверка наличия значений и параметры сортировки.
| Функция / Константа | Описание | Пример |
|---|---|---|
array_map() | Применяет callback ко всем элементам массива | array_map('strtoupper', $arr); |
array_filter() | Фильтрует массив через callback | array_filter($arr, fn($v) => $v > 0); |
array_reduce() | Сворачивает массив в одно значение | array_reduce([1,2,3], fn($a,$b) => $a+$b); |
in_array() | Проверяет наличие значения в массиве | in_array(5, [1,2,3,4]); |
array_merge() | Объединяет массивы | array_merge([1,2], [3,4]); |
SORT_REGULAR, SORT_NUMERIC, SORT_STRING | Константы сортировки | sort($arr, SORT_NUMERIC); |
FTP
Функции для работы с FTP-серверами: установка соединения, авторизация, загрузка и скачивание файлов, выбор режима передачи (ASCII/Binary).
| Функция / Константа | Описание | Пример |
|---|---|---|
ftp_connect() | Устанавливает соединение с FTP-сервером | $conn = ftp_connect("ftp.example.com"); |
ftp_login() | Авторизация на сервере | ftp_login($conn, 'user', 'pass'); |
ftp_put() | Загружает файл на сервер | ftp_put($conn, "remote.txt", "local.txt", FTP_ASCII); |
ftp_get() | Скачивает файл с сервера | ftp_get($conn, "local.txt", "remote.txt", FTP_ASCII); |
FTP_ASCII, FTP_BINARY | Режимы передачи | ftp_put($conn, "file.txt", "file.txt", FTP_ASCII); |
HTTP
Инструменты для отправки HTTP-заголовков, управления сессиями, установки cookie, получения/установки кодов ответа и работы с данными запроса.
| Функция / Константа | Описание | Пример |
|---|---|---|
header() | Отправляет HTTP-заголовок | header("Location: /home"); |
setcookie() | Устанавливает cookie | setcookie("user", "John", time()+3600); |
session_start() | Инициализирует сессию | session_start(); $_SESSION['user'] = 'John'; |
http_response_code() | Получает/устанавливает код ответа HTTP | http_response_code(404); |
HTTP_RAW_POST_DATA | Содержит данные POST-запроса (устаревшая) | echo $HTTP_RAW_POST_DATA; |
Mail
Функции для отправки электронной почты, настройки параметров почтового сервера через php.ini, а также константы, ограничивающие формат писем.
| Функция / Константа | Описание | Пример |
|---|---|---|
mail() | Отправляет email | mail("user@example.com", "Тема", "Сообщение"); |
ini_set() | Настраивает параметры почты | ini_set("sendmail_from", "me@example.com"); |
MAIL_MAX_LINE_LENGTH | Максимальная длина строки в письме | define("MAIL_MAX_LINE_LENGTH", 998); |
SMTP, smtp_port | Настройки SMTP в php.ini | ini_get("SMTP") |
String
Базовые операции с текстом: определение длины строки, поиск подстрок, извлечение части строки, замена содержимого, преобразование регистра.
| Функция / Константа | Описание | Пример |
|---|---|---|
strlen() | Длина строки | echo strlen("Hello"); // 5 |
strpos() | Ищет позицию подстроки | echo strpos("Hello", "e"); // 1 |
substr() | Возвращает часть строки | echo substr("Hello", 0, 3); // Hel |
str_replace() | Замена в строке | echo str_replace("old", "new", "old text"); |
CASE_LOWER, CASE_UPPER | Константы для преобразования регистра | strtolower("HELLO") |
Variable
Функции для проверки типа переменной, её существования, удаления, а также стандартные значения (NULL, true, false) и типизированные проверки.
| Функция / Константа | Описание | Пример |
|---|---|---|
gettype() | Возвращает тип переменной | echo gettype($var); |
is_string(), is_int() и прочие по типам | Проверяет тип | if (is_numeric($var)) { ... } |
isset() | Проверяет существование переменной | if (isset($_POST['name'])) { ... } |
unset() | Удаляет переменную | unset($var); |
NULL, true, false | Стандартные логические и null значения | $val = NULL; |
Date/Time
Работа с датой и временем: форматирование, получение текущего времени в Unix-формате, преобразование строковых представлений дат, ООП-класс DateTime и стандартные форматы вывода.
| Функция / Константа | Описание | Пример |
|---|---|---|
date() | Форматирует дату | echo date("Y-m-d H:i:s"); |
time() | Текущее время в формате Unix timestamp | echo time(); |
strtotime() | Преобразует текстовое представление даты | strtotime("next Friday"); |
DateTime | ООП-класс для работы с датой | $dt = new DateTime(); echo $dt->format("d.m.Y"); |
DATE_ATOM, DATE_ISO8601, DATE_RFC822 | Форматы вывода даты | echo date(DATE_RFC822); |
Directory
Операции с каталогами: открытие, чтение содержимого по одному элементу или списком, использование системных разделителей путей.
| Функция / Константа | Описание | Пример |
|---|---|---|
opendir() | Открывает директорию | $dh = opendir("/path/to/dir"); |
readdir() | Читает содержимое директории | while (($file = readdir($dh)) !== false) { echo $file; } |
scandir() | Возвращает список файлов в виде массива | print_r(scandir("/path")); |
DIR_SEPARATOR, DIRECTORY_SEPARATOR | Разделитель каталогов | echo DIRECTORY_SEPARATOR; // \ или / |
Math
Математические функции: генерация случайных чисел, вычисление модуля, округление, получение минимального и максимального значений, константа π.
| Функция / Константа | Описание | Пример |
|---|---|---|
rand(), mt_rand() | Генерирует случайное число | echo rand(1, 10); |
abs() | Возвращает абсолютное значение | echo abs(-5); // 5 |
round(), ceil(), floor() | Округление чисел | echo round(3.6); // 4 |
pi(), M_PI | Возвращает число π | echo M_PI; // 3.14159... |
max(), min() | Возвращает максимум или минимум | echo max([1,2,3]); // 3 |
Filter
Функции для валидации и фильтрации данных: проверка email, URL, IP-адресов, очистка строк, безопасная обработка входных данных из GET, POST и других источников.
| Функция / Константа | Описание | Пример |
|---|---|---|
filter_var() | Проверяет или очищает переменную | filter_var("test@example.com", FILTER_VALIDATE_EMAIL); |
FILTER_SANITIZE_STRING | Очищает строку | filter_var("<b>Hello</b>", FILTER_SANITIZE_STRING); |
FILTER_VALIDATE_URL, FILTER_VALIDATE_IP | Проверяет URL или IP | filter_var("https://example.com ", FILTER_VALIDATE_URL); |
filter_input() | Проверяет входящие данные | filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL); |
Calendar
Поддержка календарных вычислений: определение количества дней в месяце, работа с юлианским календарём, расчёт даты Пасхи с использованием различных методик.
| :--- | :--- | :--- |
| cal_days_in_month() | Количество дней в месяце | echo cal_days_in_month(CAL_GREGORIAN, 2, 2024); // 29 |
| jddayofweek() | Возвращает день недели по юлианскому календарю | echo jddayofweek(2459304); |
| CAL_EASTER_DEFAULT, CAL_EASTER_ROMAN, CAL_EASTER_ALWAYS_GREGORIAN | Константы для расчёта Пасхи | easter_date(2024, CAL_EASTER_ROMAN); |
XML
Низкоуровневый парсинг XML: создание парсера, обработка структуры документа, установка обработчиков элементов, анализ кодов ошибок.
| Функция / Константа | Описание | Пример |
|---|---|---|
xml_parser_create() | Создаёт XML-парсер | $parser = xml_parser_create(); |
xml_parse_into_struct() | Парсит XML в структуру | xml_parse_into_struct($parser, $data, $vals, $index); |
XML_ERROR_NONE, XML_ERROR_SYNTAX | Коды ошибок парсера | if (xml_get_error_code($parser) == XML_ERROR_NONE) { ... } |
xml_set_element_handler() | Устанавливает обработчики начала и конца тегов | xml_set_element_handler($parser, "startTag", "endTag"); |
Zip
Работа с ZIP-архивами: открытие, чтение записей, извлечение файлов; предоставляет также объектный интерфейс через класс ZipArchive.
| Функция / Константа | Описание | Пример |
|---|---|---|
zip_open() | Открывает zip-файл | $zip = zip_open("archive.zip"); |
zip_read() | Чтение следующего файла из архива | while ($entry = zip_read($zip)) { ... } |
ZipArchive | ООП-интерфейс для работы с ZIP | — |