🧱 Суть

Строка (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-8
  • explode() и implode() помогают работать со списками данных
  • htmlspecialchars() нужен для безопасного вывода HTML
  • встроенные функции делают обработку строк проще и надёжнее

🔗 Связано