Функция strpos в PHP
Функция strpos возвращает позицию первого вхождения подстроки в другую строку. Первым параметром функция принимает строку, в которой осуществляется поиск, вторым параметром - подстроку, которую следует искать.
Результатом выполнения функции будет позиция первого символа найденной подстроки, а если такая подстрока не будет найдена - то false
. Учтите, что нумерация идет с нуля и, если подстрока находится в начале строки, то результатом функции будет 0
. Это может привести к ошибкам, если сделать, к примеру, так: if(strpos())
- в этом случае и 0
и false
приведут к одинаковому результату, чего бы нам не хотелось бы.
По умолчанию функция ищет с начала строки до первого совпадения. Начало поиска можно регулировать третьим необязательным параметром - если он задан, то поиск начнется не с начала строки, а с указанного места. Есть также функция stripos
, которая делает тоже самое, но без учета регистра.
Синтаксис
<?php
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 'нет';
}