Строковые функции PHP
Привет друзья! Сегодня пишем шпаргалку на тему: Строковые функции PHP.
Вот за что я люблю программирование, так это за то, что при изучении не перестаешь удивляться его возможностям.
Вот и строковые функции PHP могут творить чудеса. Смотрите сами, что они могут вытворять. Давайте начнем.
Функция strtolower(строка); — преобразовывает строку в нижний регистр. Данная функция неправильно работает с кириллицей. (Здесь и далее, может возникнуть вопрос. А за каким хреном ты ее пишешь. Ответ — а вдруг именно она попадется вам например при чтении чужого кода).
mb_strtolower(строка) — работает аналогичным образом, но корректно обрабатывает кириллицу.
<?php echo strtolower(‘ABC’); ?>
strtoupper(строка); — преобразовывает строку в верхний регистр, неправильно работает с кириллицей. Используйте функцию mb_strtoupper(строка); — работает аналогичным образом, но корректно обрабатывает кириллицу.
<?php echo strtoupper(‘abc’); ?>
ucfirst(строка); — преобразует первый символ строки в верхний регистр. Не работает с кириллицей.
<?php echo ucfirst(‘hello’); ?>
lcfirst(строка); — преобразует первый символ строки в нижний регистр. Не работает с кириллицей.
<?php echo lcfirst(‘Hello’); ?>
ucwords(строка); преобразует первый символ каждого слова в строке в верхний регистр. Не работает с кириллицей.
<?php echo ucwords(‘hello world’); ?>
Функция strlen(строка); — возвращает длину строки (количество символов в строке). Неправильно работает с кириллицей.
mb_strlen(строка); — работает аналогичным образом, но корректно обрабатывает кириллицу).
substr(строка, откуда, [сколько]); — вырезает и возвращает подстроку из строки. Сама строка при этом не изменяется. Нумерация символов строки начинается с нуля.
Второй параметр может быть отрицательным — в этом случае отсчет начнется с конца строки, при этом последний символ будет иметь номер -1. Последний параметр можно не указывать — тогда отрезание произойдет до конца строки. Неправильно работает с кириллицей.
mb_substrsubstr(строка, откуда, [сколько]); — работает аналогичным образом, но корректно обрабатывает кириллицу.
<?php echo substr('abcdef', 1); //вернет bcdef ?>
Функция str_replace(что меняем, на что меняем, где меняем); -ищет в строке заданный текст и меняет его на другой. Первым параметром функции принимает что меняем, а вторым — на что меняем. Это могут быть две строки или два массива (тогда элементы одного массива заменятся на соответствующие элементы второго массива).
Функция str_ireplace — делает тоже самое, но без учета регистра.
<?php echo = str_replace(‘a’, ‘!’, ‘abcabc’); // заменит все найденные буквы ‘a’ на ‘!’ ?>
strtr осуществляет поиск и замену символов в строке.
Может принимать массив замен: ключами служит то, что мы меняем, а значениями — на что будем менять:
strtr(где меняем, массив замен);
<?php echo strtr(‘111222’, [‘1’=>’a’, ‘2’=>’b’]);//заменит символы 1 и 2 на ‘a’ и ‘b’ Результат: aaabbb ?>
Или принимать строку с символами, которые будут заменены, а другим параметром строку с символами, на которые будет производится замена.
strtr(где меняем, что меняем, на что меняем);
<?php echo strtr(‘111222′, ’12’, ‘ab’); //заменит символы 1 и 2 на ‘a’ и ‘b’ Результат: aaabbb ?>
substr_replace(где меняем, на что меняем, с какого символа, [сколько символов]); — заменяет указанную часть строки на другую. Если последний параметр не указан — заменит до конца строки.
strpos(где ищем, что ищем, [откуда искать]); — возвращает позицию первого вхождения подстроки в другую строку.
Результатом выполнения функции будет позиция первого символа найденной подстроки, а если такая подстрока не будет найдена — то false. Нумерация идет с нуля и, если подстрока находится в начале строки, то результат будет 0.
По умолчанию функция ищет с начала строки. Если задан третий параметр, то поиск начнется с указанного места.
<?php echo strpos(‘abc cabc’, ‘c’); // вернет 2 т.к. отсчет с 0 ?>
strrpos(где ищем, что ищем, [откуда искать]); — возвращает позицию последнего вхождения подстроки.
Результат функции — позиция первого символа найденной подстроки, а если такая подстрока не будет найдена — то false, нумерация идет с нуля .
<?php echo strrpos(‘abc abc’, ‘a’); //Результат: 4 ?>
strstr(где ищем, что ищем); — находит первое вхождение подстроки в строку и возвращает часть строки начиная этого места до конца строки.
Есть еще похожие строковые функции PHP — strchr которая находит первое вхождение одного символа и возвращает оставшуюся часть строки. И функция strrchr — находит последнее вхождение символа и возвращает оставшуюся часть строки.
В примере ниже эта строковая функция PHP возвратит адрес страницы без доменного имени из url (вернет подстроку, начиная с первого /, до конца строки)
<?php echo strstr(‘site.ru/folder1/folder2/page.html’, ‘/’); //Результат: /folder1/folder2/page.html ?>
explode(разделитель, строка); — разбивает строку в массив по определенному разделителю.
<?php $date = ‘2025-12-31’;$arr = explode(‘-‘, $date);var_dump($arr); //Результат: [‘2025′, ’12’, ’31’] ?>
implode(разделитель, строка); — сливает массив в строку с указанным разделителем.
<?php $arr = [‘a’, ‘b’, ‘c’]; $str = implode(‘-‘, $arr); echo $str; //Результат: a-b-c ?>
str_split(строка, количество символов в элементе массива); — разбивает строку в массив.
На пример, если второй параметр задать как 3 — функция разобьет строку в массив и в каждом элементе массива будет по 3 символа.
<?php $str = ‘abcdef’; $arr = str_split($str, 2); var_dump($arr); //Результат: [‘ab’, ‘cd’, ‘ef’]; ?>
trim(строка); trim(строка, символы); — удаляет пробелы с начала и конца строки. Может также удалять другие символы, если их указать вторым параметром.
Есть также функции ltrim и rtrim,
которые делают то же самое, но ltrim только для левого края строки, а rtrim — для правого.
<?php var_dump(trim(‘ hello ‘)); //удалит пробелы по краям строки ?>
strrev(строка); — переворачивает строку так, чтобы символы шли в обратном порядке.
<?php echo strrev(‘12345’); ?>
Многовато строковых функций получилось, больше чем основных математических, но здесь еще далеко не все. Кстати все строковые функции PHP всегда можно подсмотреть в справочнике функций PHP. Так что зазубривать наизусть смысла нет.
Всего комментариев: 0