Функција strpos

Функција strpos враћа позицију првог наласка подниза у други низ или false ако подниз није пронађен. Први параметар функција прима низ у којем се врши претрага, други параметар - подниз који треба тражити.

Подразумевано функција тражи од почетка низа до првог поклапања. Почетак претраге може се регулисати трећим опционим параметром - ако је задат, претрага ће почети не са почетка низа, већ са наведеног места.

Постоји и функција stripos, која ради исто то, али без обзира на величину слова.

Синтакса

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

Пример

У овом примеру функција ће вратити позицију првог симбола 'c'. Он заузима позицију 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,
    која врши претрагу низом