Функцыя strpos

Функцыя strpos вяртае пазіцыю першага ўваходжання падрадка ў другі радок ці false, калі падрадок не знойдзены. Першым параметрам функцыя прымае радок, у якім ажыццяўляецца пошук, другім параметрам - падрадок, які трэба шукаць.

Па змаўчанні функцыя шукае з пачатку радка да першага супадзення. Пачатак пошуку можна рэгуляваць трэцім неабавязковым параметрам - калі ён зададзены, то пошук пачнецца не з пачатку радка, а з паказанага месца.

Ёсць таксама функцыя stripos, якая робіць тое ж самае, але без уліку рэгістру.

Сінтаксіс

phpstrpos(string $haystack, string $needle, int $offset = 0): int|false

Прыклад

У гэтым уроку функцыя верне пазіцыю першага сімвала 'с'. Ён займае пазіцыю 2, бо адлік пачынаецца з 0:

php<?php
  echo strpos('abcde abcde', 'c');
?>

Вынік выканання кода:

php2

Прыклад

У гэтым уроку зададзены трэці параметр і таму пошук пачнецца з трэцяй пазіцыі, у гэтым выпадку функцыя знойдзе ўжо другі сімвал 'c' і вывядзе яго пазіцыю - 8:

php<?php
  echo strpos('abcde abcde', 'c', 3);
?>

Вынік выканання кода:

php8

Прыклад

Калі падрадок не будзе знойдзены - то функцыя верне false. Калі ж радок стаіць у пачатку, то функцыя верне 0. Гэта можа быць праблемай пры параўнанні праз кароткую форму ўмовы:

php<?php
  if (strpos('http://site.ru', 'http://')) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Вынік выканання кода (не такі, як мы чакалі):

php'---'

Прыклад

Выканаем правільную праверку на пачатак радка:

php<?php
  if (strpos('http://site.ru', 'http://') === 0) {
    echo '+++';
  } else {
    echo '---';
  }
?>

Вынік выканання кода:

php'+++'

Глядзіце таксама

  • функцыю strrpos,
    якая вяртае пазіцыю апошняга ўваходжання падрадка
  • функцыю str_contains,
    якая правярае ўваходжанне сімвала ў радок
  • функцыю str_starts_with,
    якая правярае пачатак радка
  • функцыю str_ends_with,
    якая правярае канец радка
  • функцыю array_search,
    якая ажыццяўляе пошук па масіве