Внимание! На этой странице вы найдете материал урока из архивного курса по 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
На этом мы закончим рассмотрение строковых функций. Конечно, этих функций очень много, и писать про каждую просто нет смысла. Когда вы работаете со строками и захотите выполнить какую-либо манипуляцию, загляните в официальную документацию — возможно, эта функция уже реализована.
Все функции можно между собой комбинировать, вкладывать друг в друга. Выполняться они будут начиная от самой вложенной функции.
В следующем уроке будем знакомиться с математическими функциями.
Задачи
- Напишите функцию
cleanInput(string $input): string, которая принимает строку и удаляет все лишние пробелы с начала и конца строки с помощью функцииtrim, оставляя только один пробел между словами. - Создайте функцию
removeLeadingSymbol(string $input, string $symbol): string, которая удаляет все вхождения указанного символа с начала строки с помощьюltrim - Реализуйте функцию
removeSuffix(string $input, string $suffix): string, которая удаляет указанный суффикс с конца строки. - Напишите функцию
joinArray(array $words, string $separator): string, которая объединяет элементы массива в строку с указанным разделителем. - Создайте функцию
splitString(string $sentence, string $delimiter): array, которая разделяет строку на массив частей по указанному разделителю. - Реализуйте функцию
startsWithPHP(string $input): bool, которая проверяет, начинается ли строка с подстроки "PHP". - Напишите функцию
convertToLower(string $input): string, которая преобразует все символы строки в нижний регистр. - Создайте функцию
convertToUpper(string $input): string, которая преобразует все символы строки в верхний регистр. - Реализуйте функцию
getStringLength(string $input): int, которая возвращает длину строки. - Напишите функцию
extractSubstring(string $input, int $start, int $length): string, которая извлекает подстроку из строки, начиная с указанного индекса и определенной длины. - Создайте функцию
replaceCharacters(string $input, string $search, string $replace): string, которая заменяет все вхождения подстроки в строке на другую подстроку. - Напишите функцию
translateCharacters(string $input, array $replacements): string, которая заменяет несколько символов или подстрок в строке согласно ассоциативному массиву замен. - Реализуйте функцию
replaceSubstring(string $input, string $replacement, int $start, int $length): string, которая заменяет часть строки на новую подстроку, начиная с указанного индекса. - Создайте функцию
findSubstringPosition(string $input, string $search): int, которая находит позицию первого вхождения подстроки в строке.
Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу PHP.
