Вопросы и ответы по PHP
Готовые ответы на частые вопросы по PHP: короткое решение и примеры кода.
Строки
- Как вывести переносы строк на страницеПереносы строк в HTML на PHP: nl2br вместе с htmlspecialchars и разбиение текста на абзацы.
- Как добавить ведущие нули к числуВедущие нули в PHP: str_pad и sprintf для номеров заказов, времени и дат.
- Как достать числа из строкиИзвлечение чисел из текста в PHP: все числа через preg_match_all, только цифры и первое число.
- Как заменить текст в строкеЗамена подстроки в PHP: str_replace, несколько замен за один вызов и замена без учёта регистра.
- Как найти позицию подстроки в строкеПоиск позиции в строке на PHP: strpos, сравнение с false, последнее вхождение и все вхождения.
- Как обрезать строку до нужной длиныОбрезка длинной строки в PHP с добавлением многоточия: mb_substr и mb_strimwidth.
- Как перевернуть строкуПереворот строки в PHP: strrev для латиницы и способ, который работает с кириллицей.
- Как перевести строку в верхний или нижний регистрСмена регистра строки в PHP: mb_strtoupper и mb_strtolower для любого алфавита, заглавная первая буква.
- Как перевести camelCase в snake_case и обратноПреобразование имён в PHP: из camelCase в snake_case через preg_replace и обратно через ucwords.
- Как получить домен из адреса почты или ссылкиИзвлечение домена в PHP: parse_url для ссылки и разбор адреса почты по знаку @.
- Как посчитать количество символов в строкеДлина строки в PHP: mb_strlen для символов, strlen для байт и подсчёт вхождений символа.
- Как посчитать количество слов в строкеПодсчёт слов в PHP: str_word_count для английского текста и способ для любого языка.
- Как преобразовать строку в массивРазбиение строки на массив в PHP: по разделителю, по символам и по словам.
- Как проверить адрес электронной почтыПроверка email в PHP функцией filter_var и подготовка адреса перед сохранением.
- Как проверить, с чего начинается строкаПроверка начала и конца строки в PHP: str_starts_with и str_ends_with.
- Как проверить, содержит ли строка подстрокуПроверка вхождения подстроки в PHP: str_contains, поиск без учёта регистра и определение позиции.
- Как проверить, чем заканчивается строкаПроверка окончания строки в PHP: str_ends_with, без учёта регистра и несколько вариантов.
- Как проверить, что строка пустаяПроверка пустой строки в PHP: сравнение с пустой строкой, пробелы и ловушка функции empty.
- Как проверить, что строка содержит числоПроверка числа в строке на PHP: is_numeric, только цифры через ctype_digit и целое число через filter_var.
- Как проверить, является ли строка палиндромомПроверка палиндрома в PHP: сравнение со строкой наоборот, без учёта регистра, пробелов и знаков.
- Как разобрать и собрать строку запросаПараметры адреса в PHP: parse_str превращает строку запроса в массив, http_build_query — массив в строку.
- Как сгенерировать случайную строкуСлучайная строка в PHP: токен через random_bytes, строка из своего набора символов и код подтверждения.
- Как сгенерировать случайный парольГенерация пароля в PHP: случайные символы через random_int и пароль с обязательными цифрами.
- Как сгенерировать UUIDГенерация UUID версии 4 в PHP из случайных байт и проверка формата регулярным выражением.
- Как сделать из строки адрес страницы (slug)Slug в PHP: нижний регистр, дефисы вместо пробелов и удаление лишних символов.
- Как сделать первую букву заглавнойЗаглавная первая буква в PHP: ucfirst, mb_ucfirst и способ для версий до PHP 8.4.
- Как скрыть часть строки звёздочкамиМаскирование данных в PHP: номер карты, телефон и адрес почты со звёздочками вместо части символов.
- Как сравнить строки без учёта регистраСравнение строк без учёта регистра в PHP: приведение к одному регистру и strcasecmp.
- Как убрать пробелы в начале и конце строкиУдаление пробелов в PHP: trim, ltrim, rtrim и замена нескольких пробелов внутри строки одним.
- Как убрать HTML-теги из строкиУдаление тегов в PHP: strip_tags, разрешённые теги и отличие от экранирования.
- Как удалить все пробелы из строкиУдаление пробелов в PHP: str_replace для обычных пробелов, preg_replace для любых пробельных символов и сжатие повторов.
- Как удалить последний символ в строкеУдаление последнего символа строки в PHP через mb_substr и rtrim, в том числе для кириллицы.
Массивы
- Как вставить элемент в середину массиваВставка в массив PHP по позиции: array_splice с нулевой длиной, несколько элементов и вставка в начало.
- Как найти максимум и минимум в массивеНаибольшее и наименьшее значение массива в PHP: max, min и поиск ключа максимального элемента.
- Как найти медиану массиваМедиана в PHP: сортировка и средний элемент, случай чётного количества чисел.
- Как найти повторяющиеся значения в массивеПоиск дубликатов в PHP: array_count_values и array_filter, проверка наличия повторов.
- Как найти среднее значение массиваСреднее арифметическое в PHP: array_sum и count, защита от пустого массива и среднее по полю.
- Как найти элемент массива по условиюПоиск элемента в массиве массивов в PHP: array_find, вариант для старых версий и поиск по значению поля.
- Как объединить два массиваОбъединение массивов в PHP через array_merge, оператор распаковки и оператор +.
- Как отсортировать массивСортировка массива в PHP: по возрастанию, по убыванию, по полю и с сохранением ключей.
- Как отсортировать массив массивов по полюСортировка массива массивов в PHP: usort и оператор <=>, по убыванию и по нескольким полям.
- Как отсортировать массив по ключамСортировка по ключам в PHP: ksort, krsort для обратного порядка и uksort со своей функцией.
- Как отфильтровать массивФильтрация массива в PHP через array_filter: по условию, удаление пустых значений, фильтр по ключу.
- Как перебрать массив с индексомПеребор массива в PHP с доступом к индексу или ключу через foreach.
- Как перевернуть массивОбратный порядок элементов в PHP: array_reverse, сохранение ключей и отличие от сортировки.
- Как перемешать массивСлучайный порядок элементов в PHP: shuffle, сохранение ключей и несколько случайных элементов.
- Как получить значения одного поля из массива массивовКолонка из массива массивов в PHP: array_column, значения с ключами и сумма по полю.
- Как получить первый и последний элемент массиваПервый и последний элемент массива в PHP: по индексу и через array_key_first и array_key_last.
- Как получить случайный элемент массиваСлучайный элемент массива в PHP: array_rand, несколько элементов и надёжный выбор через random_int.
- Как поменять значения двух переменных местамиОбмен значений переменных в PHP одной строкой через деструктуризацию массива.
- Как посчитать сумму элементов массиваСумма и среднее значение массива в PHP: array_sum, count и сумма по полю через array_column.
- Как посчитать, сколько раз значение встречается в массивеПодсчёт повторений в массиве PHP: array_count_values, одно значение и подсчёт по условию.
- Как преобразовать массив в строкуПреобразование массива в строку в PHP: implode, пары ключ-значение и JSON.
- Как преобразовать объект в массивОбъект в массив в PHP: get_object_vars, приведение типа и вложенные объекты через JSON.
- Как проверить, ассоциативный массив или списокСписок или ассоциативный массив в PHP: функция array_is_list и её поведение после удаления элементов.
- Как проверить, есть ли значение в массивеПроверка значения и ключа в массиве PHP: in_array, array_key_exists, isset и array_search.
- Как проверить, есть ли ключ в массивеПроверка ключа массива в PHP: isset, array_key_exists и значение по умолчанию через ??.
- Как проверить, что все элементы массива подходят под условиеПроверка всех или хотя бы одного элемента массива в PHP: array_all и array_any, вариант для старых версий.
- Как проверить, что массив пустойПроверка пустого массива в PHP: сравнение с [], count и empty.
- Как разбить массив на страницыПостраничный вывод массива в PHP: array_slice со смещением и расчёт числа страниц.
- Как разбить массив на частиРазбиение массива на части в PHP: array_chunk, страницы через array_slice и количество страниц.
- Как сгруппировать массив по значению поляГруппировка массива массивов в PHP по полю: цикл с накоплением и подсчёт по группам.
- Как сделать вложенный массив плоскимПревращение вложенного массива в плоский в PHP: array_merge с распаковкой и рекурсивный вариант.
- Как сравнить два массиваСравнение массивов в PHP: операторы == и ===, отличающиеся и общие элементы через array_diff и array_intersect.
- Как убрать дубликаты из массива массивов по полюУникальные записи в PHP по одному полю: array_column с индексом и сохранение первой записи.
- Как удалить дубликаты из массиваУдаление повторяющихся значений массива в PHP через array_unique и array_values.
- Как удалить пустые значения из массиваУдаление пустых элементов массива в PHP: array_filter без функции, сохранение нуля и перенумерация.
- Как удалить элемент из массиваУдаление элемента массива в PHP: по ключу, по значению, первого и последнего.
Числа
- Как вычислить факториалФакториал в PHP: array_product и range, цикл и предел целых чисел.
- Как найти сумму цифр числаСумма цифр в PHP: через строку и array_sum или через деление с остатком.
- Как ограничить число диапазономОграничение числа сверху и снизу в PHP с помощью min и max.
- Как округлить число до двух знаковОкругление числа в PHP до двух знаков после запятой: round, number_format, округление вниз и вверх.
- Как отформатировать ценуВывод цены в PHP: number_format с копейками и разделителем тысяч, цена из копеек.
- Как отформатировать число с разделителямиФорматирование чисел в PHP через number_format: разделители тысяч и знаки после запятой.
- Как перевести число в двоичную или шестнадцатеричную системуСистемы счисления в PHP: decbin и dechex, обратное преобразование и base_convert для любого основания.
- Как показать размер файла в понятном видеРазмер в байтах в килобайты и мегабайты в PHP: функция форматирования размера.
- Как получить случайное числоСлучайное число, случайный элемент массива и перемешивание массива в PHP.
- Как получить числа ФибоначчиПоследовательность Фибоначчи в PHP: цикл с двумя переменными и генератор.
- Как посчитать процентПроценты в PHP: процент от числа, доля одного числа от другого и изменение в процентах.
- Как преобразовать строку в числоПреобразование строки в число в PHP: приведение типов (int) и (float), проверка через is_numeric.
- Как проверить, простое ли числоПростое число в PHP: проверка делителей до квадратного корня и список простых чисел.
- Как проверить, чётное ли числоПроверка чётности и кратности числа в PHP с помощью оператора остатка от деления.
Дата и время
- Как вывести «5 минут назад»Относительное время в PHP: разница в секундах и подбор подходящей единицы — минуты, часы, дни.
- Как вычислить возраст по дате рожденияВозраст по дате рождения в PHP с помощью метода diff.
- Как измерить время выполнения кодаЗамер времени в PHP: hrtime для точных измерений, microtime и сравнение двух способов.
- Как найти разницу между датамиРазница между датами в PHP: количество дней, годы и месяцы через DateTime::diff, прибавление дней.
- Как отформатировать датуФорматирование даты в PHP: функция date, класс DateTime и основные обозначения формата.
- Как перевести время в другой часовой поясЧасовые пояса в PHP: DateTimeZone и метод setTimezone, хранение времени в UTC.
- Как получить первый и последний день месяцаГраницы месяца в PHP: выражения first day of и last day of, число дней в месяце.
- Как получить текущую дату и времяТекущая дата в PHP: функция date, объект DateTimeImmutable и часовой пояс.
- Как преобразовать метку времени в дату и обратноМетка времени Unix в PHP: date и DateTimeImmutable для вывода, strtotime и getTimestamp для обратного преобразования.
- Как прибавить дни к датеСложение дат в PHP: modify у DateTimeImmutable, месяцы и рабочие дни.
- Как проверить, високосный ли годВисокосный год в PHP: символ L в формате даты, проверка через checkdate и правило деления.
- Как проверить, выходной ли деньВыходной день в PHP: номер дня недели в формате N и поиск ближайшего рабочего дня.
- Как проверить, что дата правильнаяПроверка даты в PHP: createFromFormat со сверкой результата и checkdate.
- Как сравнить две датыСравнение дат в PHP: операторы для объектов DateTimeImmutable и строки в формате ГГГГ-ММ-ДД.
- Как узнать день неделиДень недели по дате в PHP: номер, английское название и русское название.
Файлы
- Как дописать строку в конец файлаДозапись в файл на PHP: флаг FILE_APPEND, блокировка LOCK_EX и режим a функции fopen.
- Как загрузить файл на серверЗагрузка файла в PHP: форма с enctype, проверка ошибки, размера и расширения, сохранение через move_uploaded_file.
- Как записать данные в файлЗапись в файл в PHP: file_put_contents, дозапись в конец и создание папки.
- Как записать данные в CSV-файлЗапись CSV в PHP: fputcsv для каждой строки, заголовки из ключей массива и открытие файла в Excel.
- Как записать сообщение в журналСвой журнал в PHP: file_put_contents с датой и флагом FILE_APPEND, функция error_log и библиотека Monolog.
- Как отдать файл на скачиваниеСкачивание файла в PHP: заголовки Content-Disposition и Content-Length, вывод через readfile и защита пути.
- Как получить расширение файлаРасширение файла в PHP: pathinfo, нижний регистр и имя без расширения.
- Как получить список файлов в папкеСписок файлов папки в PHP: scandir, только нужные расширения через glob.
- Как проверить, существует ли файлПроверка файла в PHP: is_file, отличие от file_exists и проверка доступа на чтение.
- Как прочитать и записать JSON-файлJSON-файл в PHP: file_get_contents с json_decode, запись через json_encode с читаемым форматированием.
- Как прочитать файлЧтение файла в PHP: целиком, по строкам в массив и построчно для больших файлов.
- Как прочитать файл построчноПострочное чтение файла в PHP: функция file для небольших файлов, fgets и генератор для больших.
- Как прочитать CSV-файлЧтение CSV в PHP: fgetcsv, строки с заголовками в виде ассоциативных массивов.
- Как скопировать или переместить файлКопирование и перемещение файлов в PHP: функции copy и rename, проверка результата.
- Как создать папкуСоздание папки в PHP: mkdir с вложенными папками и проверка существования через is_dir.
- Как удалить файлУдаление файла в PHP: unlink с проверкой существования и удаление папки с содержимым.
- Как узнать размер файлаРазмер файла в PHP: filesize и перевод байт в килобайты и мегабайты.
Формы и веб
- Как безопасно вывести текст пользователяЗащита от XSS в PHP: htmlspecialchars при выводе, переносы строк и вывод в атрибут.
- Как вернуть ошибку 404Ответ 404 в PHP: http_response_code, своя страница ошибки и ответ JSON для API.
- Как защитить форму токеном CSRFЗащита от CSRF в PHP: случайный токен в сессии, скрытое поле формы и сравнение через hash_equals.
- Как отправить ответ в формате JSONJSON-ответ в PHP: заголовок Content-Type, json_encode и код состояния для ошибок.
- Как отправить письмоОтправка письма из PHP: функция mail и библиотека PHPMailer с SMTP.
- Как отправить HTTP-запрос к APIHTTP-запрос из PHP: file_get_contents для простого GET и cURL для POST с JSON, заголовками и проверкой ошибок.
- Как перенаправить на другую страницуПеренаправление в PHP: заголовок Location, код ответа и параметры в адресе.
- Как получить данные формыДанные формы в PHP: массивы $_POST и $_GET, значение по умолчанию и проверка.
- Как получить текущий адрес страницыТекущий URL в PHP: REQUEST_URI, полный адрес из частей $_SERVER и путь без параметров.
- Как проверить метод запросаМетод HTTP-запроса в PHP: REQUEST_METHOD, обработка формы и ответ 405 для неподходящего метода.
- Как проверить надёжность пароляПроверка пароля в PHP: наименьшая длина, наличие букв и цифр, список понятных сообщений об ошибках.
- Как проверить номер телефонаПроверка телефона в PHP: очистка от лишних символов, длина номера и приведение к единому виду.
- Как проверить ссылкуПроверка URL в PHP: filter_var с FILTER_VALIDATE_URL и ограничение протоколов http и https.
- Как прочитать JSON из тела запросаJSON в запросе на PHP: чтение php://input, разбор с проверкой ошибок и ответ в формате JSON.
- Как разрешить запросы с другого сайта (CORS)Заголовки CORS в PHP: Access-Control-Allow-Origin для своих сайтов и ответ на предварительный запрос OPTIONS.
- Как сохранить данные в сессииСессия в PHP: session_start, запись и чтение $_SESSION, удаление значения и завершение сессии.
- Как узнать IP-адрес посетителяIP-адрес в PHP: REMOTE_ADDR, заголовок X-Forwarded-For за прокси и проверка адреса.
- Как установить и прочитать cookieCookie в PHP: setcookie с настройками, чтение из $_COOKIE и удаление.
- Как хранить и проверять парольПароли в PHP: password_hash при регистрации, password_verify при входе и обновление хеша.
JSON и базы данных
- Как вывести записи из базы постраничноПостраничный вывод в PHP через PDO: LIMIT и OFFSET с bindValue и расчёт числа страниц.
- Как выполнить несколько запросов в транзакцииТранзакция в PHP через PDO: beginTransaction, commit и rollBack в блоке try.
- Как добавить запись в базу данныхДобавление записи в PHP через PDO: подготовленный запрос, идентификатор новой строки и несколько записей.
- Как изменить запись в базе данныхUPDATE в PHP через PDO: подготовленный запрос, число изменённых строк и опасность запроса без WHERE.
- Как найти записи по части строкиПоиск LIKE в PHP через PDO: знаки процента в значении параметра и экранирование специальных символов.
- Как подключиться к базе данныхПодключение к базе в PHP через PDO: строка подключения, режим ошибок и проверка соединения.
- Как подключиться к MySQL через MySQLiПодключение MySQLi в PHP: объект mysqli, кодировка utf8mb4 и подготовленный запрос.
- Как получить строки из базы данныхВыборка из базы в PHP через PDO: все строки, одна строка и запрос с параметром.
- Как получить id добавленной записиИдентификатор новой записи в PHP: метод lastInsertId после INSERT и связанные записи.
- Как посчитать количество записей в таблицеCOUNT в PHP через PDO: fetchColumn для одного значения, подсчёт по условию и по группам.
- Как преобразовать массив в JSONМассив в JSON в PHP: json_encode, кириллица без кодов, отступы и обработка ошибок.
- Как проверить, есть ли запись в базе данныхПроверка существования записи в PHP через PDO: SELECT 1 с LIMIT и fetchColumn.
- Как разобрать строку JSONJSON в массив в PHP: json_decode, обработка ошибок и чтение JSON из файла.
- Как удалить запись из базы данныхDELETE в PHP через PDO: подготовленный запрос, проверка результата и мягкое удаление.
Разное
- Как посмотреть содержимое переменнойОтладочный вывод в PHP: var_dump с типами, print_r для массивов и запись в журнал без вывода на страницу.
- Как прочитать переменную окруженияПеременные окружения в PHP: getenv со значением по умолчанию и обязательные переменные.
- Как сделать одиночку (singleton)Шаблон «одиночка» в PHP: закрытый конструктор и статический метод, его недостатки и замена.
- Как узнать и проверить версию PHPВерсия PHP: константа PHP_VERSION, сравнение через version_compare и проверка расширений.