АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
87 of 410 menu
Новый формат обучения! Репетиторство по программированию. Есть еще 3 свободных места! Жми для подробностей.

Функция 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,
    которая осуществляет поиск по массиву
byenru