Строки и работа с текстом в PHP 8.2: подробное руководство
Строки и работа с текстом в PHP
Введение: Почему важно уметь работать с текстом?
Представь, что ты — создатель популярной NFT-коллекции, SMM-менеджер или техноблогер. Куда бы ты ни заглянул, везде есть текст: названия токенов, хештеги, посты, статьи. Компьютер видит текст как набор символов (букв, цифр, знаков). В PHP такой набор называется строкой.
Умение управлять строками — разрезать их, склеивать, считать слова, переворачивать — это база, без которой не обойтись ни одному программисту. В этом разделе мы научимся делать с текстом всё, что нужно для реальных задач.
Основной синтаксис: Строки в PHP 8.2
Строку можно записать в одинарных или двойных кавычках. Разница есть, но для начала используй одинарные — они проще.
// Пример 1: Создание строки
$name = 'SuperGadget X';
echo "Название гаджета: $name\n"; // Вывод: Название гаджета: SuperGadget X
Основные операции со строками:
- Конкатенация (склеивание) — объединение строк через точку (.)
- Длина строки — функция
strlen() - Обрезка строки — функция
substr() - Поиск подстроки — функция
strpos() - Замена части строки — функция
str_replace() - Переворот строки — функция
strrev() - Разбиение строки на слова — функция
explode()
// Пример 2: Основные операции
$text = 'Привет, мир!';
echo "Длина: " . strlen($text) . "\n"; // 12 (считает и пробел, и запятую)
echo "Первые 7 символов: " . substr($text, 0, 7) . "\n"; // "Привет,"
echo "Позиция слова 'мир': " . strpos($text, 'мир') . "\n"; // 8
echo "Замена: " . str_replace('мир', 'код', $text) . "\n"; // "Привет, код!"
echo "Задом наперед: " . strrev($text) . "\n"; // "!рим ,тевирП"
// Разбиение на слова
$words = explode(' ', $text); // ['Привет,', 'мир!']
echo "Количество слов: " . count($words) . "\n"; // 2
Разбор типичных задач
Задача 1: NFT — Анализ названия токена
У нас есть название NFT. Нужно проверить, не слишком ли оно длинное (больше 20 символов), и вывести первые 10 символов.
// Ввод: пользователь вводит название
$input = trim(fgets(STDIN)); // Например: "CyberPunkApe#777"
$length = strlen($input);
if ($length > 20) {
echo "Название слишком длинное! ($length символов)\n";
echo "Первые 10 символов: " . substr($input, 0, 10) . "...\n";
} else {
echo "Название подходит. Длина: $length символов\n";
}
Задача 2: Хештег — Обрезка длинного хештега
Дан хештег (начинается с #). Нужно оставить только первые 10 символов (вместе с #).
$hashtag = trim(fgets(STDIN)); // Например: "#ЛучшийДеньДляПрограммирования"
// Отрезаем первые 10 символов (с 0 по 9)
$short = substr($hashtag, 0, 10);
echo "Короткий хештег: $short\n";
Задача 3: Песня — Подсчет слов
Дан текст песни. Нужно подсчитать количество слов. Слова разделены пробелами.
$lyrics = trim(fgets(STDIN)); // Например: "Hello world it's a new day"
$words = explode(' ', $lyrics);
$count = count($words);
echo "Количество слов: $count\n";
Задача 4: Статья — Заключительная часть
Нужно взять последние 100 символов статьи.
$article = trim(fgets(STDIN)); // Длинный текст
$length = strlen($article);
$start = $length - 100; // Начало последних 100 символов
if ($start < 0) $start = 0; // Если статья короче 100 символов
$ending = substr($article, $start);
echo "Заключение:\n$ending\n";
Задача 5: Обратное сообщение — Переворот строки
Нужно вывести фразу задом наперед.
$message = trim(fgets(STDIN)); // "Привет подписчики"
$reversed = strrev($message);
echo "Обратное сообщение: $reversed\n";
Частые ошибки новичков
- Путаница с кавычками: Внутри строки с одинарными кавычками переменные не работают. Используй двойные кавычки или конкатенацию.
Неправильно:echo 'Привет, $name';— выведет "Привет, $name"
Правильно:echo "Привет, $name";илиecho 'Привет, ' . $name; - Забывают про пробелы: Функция
substr()считает пробелы как символы. Если нужно 10 букв, а в начале пробел — получите 9 букв + пробел. - Не обрабатывают пустой ввод: Если пользователь ничего не ввел,
explode()вернет массив с одним пустым элементом. Всегда проверяйте длину строки перед разбиением. - Путают
strpos()иstr_contains(): В PHP 8.2 естьstr_contains(), который возвращает true/false. Используйте его для простой проверки наличия подстроки.
Итоговый пример: Комбинированная задача
Представь, что ты — популярный блогер. Ты хочешь провести конкурс: пользователь вводит фразу, а программа делает из неё "зашифрованное" сообщение: переворачивает, обрезает до 20 символов и добавляет хештег #Конкурс.
// Получаем фразу от пользователя
echo "Введите вашу фразу: ";
$phrase = trim(fgets(STDIN));
// Шаг 1: Переворачиваем
$reversed = strrev($phrase);
// Шаг 2: Обрезаем до 20 символов (если длиннее)
if (strlen($reversed) > 20) {
$short = substr($reversed, 0, 20) . '...';
} else {
$short = $reversed;
}
// Шаг 3: Добавляем хештег
$result = $short . ' #Конкурс';
// Выводим результат
echo "Ваше зашифрованное сообщение:\n";
echo $result . "\n";
// Пример работы:
// Ввод: "Сегодня отличный день для конкурса!"
// Вывод: "!асрувнок ялед йынчилтО #Конкурс"
Вот и всё! Теперь ты умеешь работать со строками в PHP 8.2. Эти навыки пригодятся в любой задаче, где есть текст — от анализа названий NFT до обработки комментариев в социальных сетях. Пробуй, экспериментируй, и всё получится!