🧱 Суть
Строка (string) – это последовательность символов, используемая для хранения текста.
В PHP строки создаются с помощью одинарных или двойных кавычек:
$name = 'Alex';
$message = "Hello, $name";PHP предоставляет множество функций для поиска, изменения и обработки строк.
📦 Проблема
1. Разные кавычки работают по-разному
$name = "Alex";
echo 'Hello $name';Результат:
Hello $nameОдинарные кавычки не выполняют подстановку переменных.
2. Неправильная работа с длиной и символами
strlen("Привет");Для кириллицы результат может быть неожиданным, так как PHP считает байты, а не символы.
3. Ручная обработка строк усложняет код
Например, поиск, замена или разбиение текста лучше делать готовыми функциями.
✅ Решение
Использовать функции PHP для безопасной и удобной работы со строками.
💻 Код
Создание строк
Одинарные кавычки:
$text = 'Hello';Используются для обычного текста.
Двойные кавычки:
$name = "Alex";
$text = "Hello, $name";Поддерживают:
- подстановку переменных
- специальные символы (
\n,\t)
Конкатенация строк
Для объединения строк используется оператор .:
$first = "Hello";
$second = "World";
$result = $first . " " . $second;Результат:
Hello WorldПолучение длины строки
strlen() – возвращает длину строки в байтах:
strlen("Hello");Результат:
5Для UTF-8 текста используют:
mb_strlen("Привет");Поиск подстроки
strpos() ищет позицию первого вхождения:
$text = "Hello world";
strpos($text, "world");Результат:
6Проверка наличия:
if (strpos($text, "world") !== false) {
echo "Найдено";
}Важно использовать !== false, потому что позиция 0 является валидным результатом.
Замена текста
str_replace() заменяет часть строки:
$text = "Hello Alex";
$result = str_replace(
"Alex",
"Bob",
$text
);Результат:
Hello BobРазделение строки
explode() превращает строку в массив:
$tags = "php,js,react";
$result = explode(",", $tags);Результат:
[
"php",
"js",
"react"
]Объединение массива в строку
implode() делает обратное:
$tags = [
"php",
"js",
"react"
];
$result = implode(", ", $tags);Результат:
php, js, reactИзменение регистра
Верхний регистр:
strtoupper("hello");Результат:
HELLOНижний регистр:
strtolower("HELLO");Результат:
helloДля UTF-8:
mb_strtoupper("Привет");Удаление пробелов
trim() удаляет пробелы с краёв строки:
$text = " Hello ";
echo trim($text);Результат:
HelloПолучение части строки
substr():
$text = "Hello world";
echo substr($text, 0, 5);Результат:
HelloДля UTF-8:
mb_substr($text, 0, 5);Форматирование строк
printf() позволяет форматировать вывод:
$name = "Alex";
$age = 25;
printf(
"Name: %s, Age: %d",
$name,
$age
);Результат:
Name: Alex, Age: 25Проверка начала и конца строки
PHP 8+:
str_starts_with($text, "Hello");
str_ends_with($text, "world");Пример:
str_starts_with(
"Hello world",
"Hello"
);Результат:
trueЭкранирование HTML
При выводе пользовательского текста важно защищаться от XSS:
echo htmlspecialchars($userInput);Например:
<script>alert('hack')</script>будет выведен как обычный текст.
🎯 Вывод
- строки в PHP имеют тип
string - двойные кавычки поддерживают интерполяцию переменных
- для объединения используется
. mb_*функции нужны для корректной работы с UTF-8explode()иimplode()помогают работать со списками данныхhtmlspecialchars()нужен для безопасного вывода HTML- встроенные функции делают обработку строк проще и надёжнее