Codebra
30 января 2026 в 20:28

Урок 15. Строковые функции в PHP

В этом уроке вы освоите мощные строковые функции PHP, научитесь манипулировать текстом, искать, заменять и форматировать строки, превращая их в гибкий и удобный инструмент для разработки.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по PHP. Курс был написан в 2024 году одним из первых учеников Codebra и, к моменту написания курса, опытным бэкэнд-разработчиком. К сожалению, курс не был дописан, а его автор молча пропал.

Полный список уроков доступен по тегу Архивный курс по PHP и на странице первого урока.

После рассмотрения пользовательских функций самое время изучить встроенные, и начнем мы со строковых. Как я уже говорил, на веб-сайте всё представлено в текстовом варианте, и это очень важно. Когда вы читаете эти строки, я пишу в формате Markdown, но чтобы преобразовать его в HTML, нужно написать парсер или использовать готовую библиотеку.

Стандартных функций для работы со строками в PHP насчитывается более 50. Рассматривать все их нет смысла, а запоминать стоит только самые важные.

💡 Примечание

Про все строковые функции которые существуют, обратитесь к официальной документации PHP

Функция trim

Функция trim удаляет пробелы в начале и в конце строки.

<?php
	$str = " Привет Мир! ";

	echo trim($str); // Распечатает без пробелов в начале и конце
?>

Так же есть подобные функции: ltrim - удаляет пробелы только в начале, rtrim - удаляет пробелы только в конце строки.

Функция implode

Функция implode объединяет элементы массива в строку.

Синтаксис:

implode(разделитель строки, массив);
<?php
	$arr = ['Привет', 'Мир!', 'ГОД -', 2024];

	echo implode(' ', $arr); // Распечатает 'Привет Мир! ГОД - 2024'
?>

Функция str_starts_with

Проверяет, начинается ли строка с передаваемой подстроки. Возвращает true или false

Синтаксис:

str_starts_with(подстрока, строка по которой ищем);
<?php
	$str = 'Привет мир!';

	if (str_starts_with($str, 'При')) {
		echo "+++"; // Распечатает +++
	} else {
		echo "---";
	}
?>

Функции strtolower, strtoupper

Функция strtolower - преобразовывает строку в верхний регистр. Функция strtoupper - преобразовывает строку в нижний регистр.

Синтаксис:

strtolower(строка);

strtoupper(строка)
<?php
	$str1 = 'codebra';
	$str2 = 'CODEBRA';

	echo strtolower($str2); // Распечатает  codebra 
	echo strtoupper($str1); // Распечатает CODEBRA
?>
💡 Запомните

Для преобразования кириллицы потребуются другие функции: mb_strtolower и mb_strtoupper

Функция strlen

Считает сколько символов в строке (пробелы тоже идут в счёт).

Синтаксис:

strlen(строка)
<?php
	$str = 'Codebra';

	echo strlen($str); // Распечатает 7
?>

Функция substr

Вырезает с строки нужную нам подстроку.

💡 Запомните

Вырезание строки тоже начинается с 0. Мы даже можем к символу строки обратиться как к массиву $str[0] - будет первый символ строки.

substr(строка, откуда начинать, сколько символов вырезать);
<?php
	$str = 'Codebra';

	echo substr($str, 2); // Распечатает debra
	echo substr($str, 2, 1); // Распечатает d
	echo substr($str, -3, 2); // Распечатает br
	echo substr($str, -1); // Распечатает a
?>

Функция str_replace

Заменяет символы строки при поиске.

Cинтаксис:

str_replace(искомые подстроки, на что заменить, где заменить);

Допустим, у нас есть некий HTML шаблон, и нам надо заменить шаблон {{ title }} на тот который мы будем передавать.

<?php
	$title = 'Изучаем PHP';
	$html = '<title>{{ title }}</title>';

	echo str_replace('{{ title }}', $title, $html); // Распечатает <title>Изучаем PHP</title>
?>

Удобно, не правда ли? А если у нас будет много значений? Нужно будет передавать массивы.

<?php
$title = ['Список продуктов','Молоко', 'Сахар', 'Хлеб'];
$search = ['{{ title }}', '{{ milk }}', '{{ sugar }}', '{{ bread }}'] ;
$html = <<<HEREDOC

<h1>{{ title }}</h1>

<ul>
<li> {{ milk }} </li>
<li> {{ sugar }} </li>
<li> {{ bread }} </li>
</ul>

HEREDOC;

echo str_replace($search, $title, $html);
?>

Вывод будет следующим:

<h1>Список продуктов</h1>

<ul>
	<li> Молоко </li>
	<li> Сахар </li>
	<li> Хлеб </li>
</ul>

Значений и шаблонов для замен должно быть одинаковое количество, и они заменяются по порядку слева направо.

Функция strtr

Заменяет символы в строку, имеет два варианта:

Синтаксис:

strtr(где меняем, массив замен);
strtr(где меняем, что меняем, на что меняем);
<?php
	echo strtr('12', ['1' => 'a', '2' => 'b']); // Распечатает ab
?>
<?php
	echo strtr('aabb', ['a' => '1', 'b' => '2']); // Распечатает 1122
?>

Функция substr_replace

Заменяет указанную часть строки на другую строку.

Синтаксис:

substr_replace(где меняем, на что меняем, с какого символа, [сколько символов]);
<?php
	echo substr_replace('World', '23', 1, 2); // Распечатает W23ld
?>

Функция strpos

Возвращает позицию первого вхождения подстроки в строке.

Синтаксис:

strpos(строка, ыто ищем, с какого символа искать);
<?php
	echo strpos('abcd', 'c'); // Распечатает 2
?>
<?php
	echo strpos('abcd abc', 'c', 4); // Распечатает 7
?>

Функция explode

Преобразует строку в массив.

Синтаксис:

explode(разделитель, строка);
<?php
	$data = '15-08-2024';
	
	print_r(explode('-', $data));
?>

Выведет в следующем виде:

[0] => 15
[1] => 08
[2] => 2024

На этом мы закончим рассмотрение строковых функций. Конечно, этих функций очень много, и писать про каждую просто нет смысла. Когда вы работаете со строками и захотите выполнить какую-либо манипуляцию, загляните в официальную документацию — возможно, эта функция уже реализована.

💡 Запомните

Все функции можно между собой комбинировать, вкладывать друг в друга. Выполняться они будут начиная от самой вложенной функции.

В следующем уроке будем знакомиться с математическими функциями.

Задачи

  1. Напишите функцию cleanInput(string $input): string, которая принимает строку и удаляет все лишние пробелы с начала и конца строки с помощью функции trim, оставляя только один пробел между словами.
  2. Создайте функцию removeLeadingSymbol(string $input, string $symbol): string, которая удаляет все вхождения указанного символа с начала строки с помощью ltrim
  3. Реализуйте функцию removeSuffix(string $input, string $suffix): string, которая удаляет указанный суффикс с конца строки.
  4. Напишите функцию joinArray(array $words, string $separator): string, которая объединяет элементы массива в строку с указанным разделителем.
  5. Создайте функцию splitString(string $sentence, string $delimiter): array, которая разделяет строку на массив частей по указанному разделителю.
  6. Реализуйте функцию startsWithPHP(string $input): bool, которая проверяет, начинается ли строка с подстроки "PHP".
  7. Напишите функцию convertToLower(string $input): string, которая преобразует все символы строки в нижний регистр.
  8. Создайте функцию convertToUpper(string $input): string, которая преобразует все символы строки в верхний регистр.
  9. Реализуйте функцию getStringLength(string $input): int, которая возвращает длину строки.
  10. Напишите функцию extractSubstring(string $input, int $start, int $length): string, которая извлекает подстроку из строки, начиная с указанного индекса и определенной длины.
  11. Создайте функцию replaceCharacters(string $input, string $search, string $replace): string, которая заменяет все вхождения подстроки в строке на другую подстроку.
  12. Напишите функцию translateCharacters(string $input, array $replacements): string, которая заменяет несколько символов или подстрок в строке согласно ассоциативному массиву замен.
  13. Реализуйте функцию replaceSubstring(string $input, string $replacement, int $start, int $length): string, которая заменяет часть строки на новую подстроку, начиная с указанного индекса.
  14. Создайте функцию findSubstringPosition(string $input, string $search): int, которая находит позицию первого вхождения подстроки в строке.
📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу PHP.