Funktsioon strpos

Funktsioon strpos tagastab alamstringi esimese esinemise asukoha teises stringis või false, kui alamstringi ei leita. Esimene parameeter on string, milles otsing tehakse, teine parameeter - otsitav alamstring.

Vaikimisi otsib funktsioon stringi algusest kuni esimese vaste leidmiseni. Otsingu alguspunkti saab reguleerida kolmanda valikulise parameetriga - kui see on määratud, siis otsing algab mitte stringi algusest, vaid määratud kohast.

Samuti on olemas funktsioon stripos, mis teeb sama asja, kuid ilma suurtähetundlikkuseta.

Süntaks

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

Näide

Selles näites tagastab funktsioon esimese sümboli 'c' asukoha. See asub positsioonil 2, kuna loendamine algab 0-st:

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

Koodi täitmise tulemus:

php2

Näide

Selles näites on määratud kolmas parameeter ja seetõttu algab otsing kolmandast positsioonist. Sel juhul leiab funktsioon teise sümboli 'c' ja väljastab selle asukoha - 8:

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

Koodi täitmise tulemus:

php8

Näide

Kui alamstringi ei leita, tagastab funktsioon false. Kui string asub alguses, tagastab funktsioon 0. See võib olla probleemiks tingimuse lühivormiga võrdlemisel:

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

Koodi täitmise tulemus (pole selline, nagu ootasime):

php'---'

Näide

Teeme stringi alguse õige kontrolli:

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

Koodi täitmise tulemus:

php'+++'

Vaata ka

  • funktsiooni strrpos,
    mis tagastab alamstringi viimase esinemise asukoha
  • funktsiooni str_contains,
    mis kontrollib sümboli esinemist stringis
  • funktsiooni str_starts_with,
    mis kontrollib stringi algust
  • funktsiooni str_ends_with,
    mis kontrollib stringi lõppu
  • funktsiooni array_search,
    mis teostab otsingu massiivist