0 знаков
16. Строковые функции в PHP
После рассмотрения пользовательских функций самое время изучить встроенные, и начнем мы со строковых. Как я уже говорил, на веб-сайте всё представлено в текстовом варианте, и это очень важно. Когда вы читаете эти строки, я пишу в формате [ссылка доступна авторизованным пользователям], но чтобы преобразовать его в HTML, нужно написать парсер или использовать готовую библиотеку.
Стандартных функций для работы со строками в PHP насчитывается более 50. Рассматривать все их нет смысла, а запоминать стоит только самые важные.
ПримечаниеПро все строковые функции которые существуют, обратитесь к официальной документации [ссылка доступна авторизованным пользователям]
Функция 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
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ