Функция strpos
Функция strpos возвращает позицию
первого вхождения подстроки в другую строку
или false, если подстрока не найдена.
Первым параметром функция принимает строку,
в которой осуществляется поиск, вторым параметром
- подстроку, которую следует искать.
По умолчанию функция ищет с начала строки до первого совпадения. Начало поиска можно регулировать третьим необязательным параметром - если он задан, то поиск начнется не с начала строки, а с указанного места.
Есть также функция stripos, которая
делает тоже самое, но без учета регистра.
Синтаксис
strpos(string $haystack, string $needle, int $offset = 0): int|false
Пример
В данном примере функция вернет позицию первого
символа 'с'. Он занимает позицию 2,
так как отсчет начинается с 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Результат выполнения кода:
2
Пример
В данном примере задан третий параметр и
поэтому поиск начнется с третьей позиции,
в этом случае функция найдет уже второй символ
'c' и выведет его позицию - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Результат выполнения кода:
8
Пример
Если подстрока не будет найдена - то функция
вернет false. Если же строка стоит
в начале, то функция вернет 0.
Это может быть проблемой при сравнении
через короткую форму условия:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Результат выполнения кода (не такой, как мы ожидали):
'---'
Пример
Выполним правильную проверку на начало строки:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Результат выполнения кода:
'+++'
Смотрите также
-
функцию
strrpos,
которая возвращает позицию последнего вхождения подстроки -
функцию
str_contains,
которая проверяет вхождение символа в строку -
функцию
str_starts_with,
которая проверяет начало строки -
функцию
str_ends_with,
которая проверяет конец строки -
функцию
array_search,
которая осуществляет поиск по массиву