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