Funkcia strpos

Funkcia strpos vráti pozíciu prvého výskytu podreťazca v inom reťazci alebo false, ak podreťazec nie je nájdený. Prvým parametrom funkcia prijíma reťazec, v ktorom sa vykonáva vyhľadávanie, druhým parametrom - podreťazec, ktorý sa má hľadať.

Predvolene funkcia hľadá od začiatku reťazca až po prvú zhodu. Začiatok vyhľadávania je možné regulovať tretím voliteľným parametrom - ak je zadaný, vyhľadávanie nezačne od začiatku reťazca, ale od určeného miesta.

Existuje aj funkcia stripos, ktorá robí to isté, ale bez ohľadu na veľkosť písmen.

Syntax

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

Príklad

V tomto príklade funkcia vráti pozíciu prvého symbolu 'c'. Ten sa nachádza na pozícii 2, pretože počítanie začína od 0:

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

Výsledok vykonania kódu:

php2

Príklad

V tomto príklade je zadaný tretí parameter a preto vyhľadávanie začne od tretej pozície, v tomto prípade funkcia nájde už druhý symbol 'c' a vypíše jeho pozíciu - 8:

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

Výsledok vykonania kódu:

php8

Príklad

Ak podreťazec nebude nájdený - funkcia vráti false. Ak sa reťazec nachádza na začiatku, funkcia vráti 0. To môže byť problémom pri porovnávaní pomocou krátkej formy podmienky:

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

Výsledok vykonania kódu (nie taký, aký sme očakávali):

php'---'

Príklad

Vykonajme správnu kontrolu začiatku reťazca:

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

Výsledok vykonania kódu:

php'+++'

Pozri tiež

  • funkciu strrpos,
    ktorá vráti pozíciu posledného výskytu podreťazca
  • funkciu str_contains,
    ktorá kontroluje výskyt symbolu v reťazci
  • funkciu str_starts_with,
    ktorá kontroluje začiatok reťazca
  • funkciu str_ends_with,
    ktorá kontroluje koniec reťazca
  • funkciu array_search,
    ktorá vykonáva vyhľadávanie v poli