В этом уроке мы поговорим о работе со строками, одной из самых важных и часто используемых частей любого языка программирования. Строки в PHP это не просто набор символов, а мощный инструмент, который позволяет нам манипулировать текстом, обрабатывать данные и создавать динамический контент.
Мы разберем основные функции для работы со строками, научимся их объединять (конкатенировать) и решим несколько практических задач, чтобы закрепить материал.
Что такое строка в PHP?
В PHP строка это последовательность символов, например: "Привет, мир!"
, '12345'
или даже многострочный текст. Строки можно создавать в одинарных (' '
) или двойных (" "
) кавычках. Разница между ними есть, и мы её обсудим, но сначала — к основам.
Основные функции для обработки строк
PHP предлагает десятки функций для работы со строками. Я расскажу о самых полезных и часто используемых.
1. strlen() — длина строки
Функция strlen()
возвращает количество символов в строке.
Пример:
$text = "Hello, Максим!"; echo strlen($text); // Выведет 14 (пробелы и знаки тоже считаются)
Для кириллицы в кодировке UTF-8 используйте mb_strlen()
, иначе символы будут считаться некорректно:
$text = "Привет"; echo mb_strlen($text, 'UTF-8'); // Вернёт 6
2. substr() — получение подстроки
substr()
позволяет вырезать часть строки.
Синтаксис:
substr(строка, начало [, длина])
Примеры:
$text = "Программирование на PHP"; echo substr($text, 0, 12); // "Программирова" echo substr($text, -3); // "PHP" (отрицательное начало отсчитывает с конца)
3. str_replace() — замена текста
Эта функция заменяет все вхождения подстроки в строке.
Синтаксис:
str_replace(что_заменить, на_что_заменить, строка)
Пример:
$text = "Я люблю Java!"; $newText = str_replace("Java", "PHP", $text); echo $newText; // "Я люблю PHP!"
4. trim() — удаление пробелов
Удаляет пробелы, табы и переносы строк в начале и конце строки:
$text = " Привет, мир! "; echo trim($text); // "Привет, мир!"
5. explode() и implode() — разделение и объединение
explode()
разбивает строку в массив по разделителю.implode()
объединяет элементы массива в строку.
$csv = "Яблоки,Бананы,Апельсины"; $array = explode(",", $csv); print_r($array); // Array ( [0] => Яблоки [1] => Бананы [2] => Апельсины ) $newText = implode(" и ", $array); echo $newText; // Выведет: Яблоки и Бананы и Апельсины
6. strpos() — поиск подстроки
Ищет позицию первого вхождения подстроки:
$text = "Привет, Максим!"; $position = strpos($text, "Максим"); echo $position; // 8 (позиция начинается с 0)
7. strtolower() и trtoupper() — регистр символов
strtolower()
преобразует строку в нижний регистр:echo strtolower("PHP ЛУЧШИЙ!"); // "php лучший!"
strtoupper()
— в верхний:echo strtoupper("php лучший!"); // "PHP ЛУЧШИЙ!"
8. htmlspecialchars() — экранирование HTML
Заменяет специальные символы на HTML-сущности. Это важно для безопасности!
$userInput = "<script>alert('Взлом!');</script>"; echo htmlspecialchars($userInput); // Безопасный вывод
Конкатенация строк
Конкатенация это объединение строк. В PHP для этого используется оператор .
(точка).
Пример:
$name = "Максим"; $greeting = "Привет, " . $name . "! Сегодня " . date("d.m.Y"); echo $greeting; // "Привет, Максим! Сегодня 14.05.2025"
Можно совмещать с присваиванием:
$text = "Начало"; $text .= " и конец."; echo $text; // "Начало и конец."
Практические задачи
Попробуйте решить задачи самостоятельно, прежде чем смотреть решения.
Задача 1: Форматирование email
Напишите скрипт, который принимает email через форму и проверяет, содержит ли он символ @
и точку после него.
Подсказка: Используйте strpos()
.
Задача 2: Обработка текста
Дан текст: "PHP - это интересно! Но нужно практиковаться."
Замените все гласные буквы на звездочки *
.
Решение:
$text = "PHP - это интересно! Но нужно практиковаться."; $vowels = ["а", "е", "и", "о", "у", "ы", "э", "ю", "я"]; $result = str_replace($vowels, "*", mb_strtolower($text)); echo $result;
Задача 3: Разделение URL
Разбейте URL https://max-gabov.ru/php-dlya-nachinaushih
на части (протокол, домен, путь).
Решение:
$url = "https://max-gabov.ru/php-dlya-nachinaushih"; $parts = explode("/", $url); echo "Протокол: " . str_replace(":", "", $parts[0]) . "<br>"; echo "Домен: " . $parts[2] . "<br>"; echo "Путь: " . implode("/", array_slice($parts, 3));
Задача 4: Генератор паролей
Создайте функцию, которая генерирует случайный пароль из 8 символов (цифры и буквы).
Решение:
function generatePassword() { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $password = substr(str_shuffle($chars), 0, 8); return $password; } echo generatePassword();
Советы
- Всегда проверяйте кодировку при работе с кириллицей.
- Используйте
htmlspecialchars()
при выводе пользовательских данных. - Для сложных замен в тексте изучайте регулярные выражения (о них в следующих уроках).
Сегодня вы научились работать со строками, это огромный шаг. Продолжайте учиться!
Полный курс с уроками по PHP для начинающих доступен здесь: https://max-gabov.ru/php-dlya-nachinaushih