Funktio strpos

Funktio strpos palauttaa alimerkin ensimmäisen esiintymän sijainnin toisessa merkkijonossa tai false, jos alimerkkiä ei löydy. Ensimmäisenä parametrina funktio ottaa merkkijonon, josta etsitään, toisena parametrina - alimerkin, jota etsitään.

Oletusarvoisesti funktio etsii merkkijonon alusta ensimmäiseen osumaan asti. Haun alkamiskohtaa voidaan säätää kolmannella valinnaisella parametrilla - jos se on annettu, haku alkaa ei merkkijonon alusta, vaan määritetystä kohdasta.

On olemassa myös funktio stripos, joka tekee saman, mutta kirjainkoosta riippumatta.

Syntaksi

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

Esimerkki

Tässä esimerkissä funktio palauttaa ensimmäisen merkin 'c' sijainnin. Se on kohdassa 2, silä laskeminen alkaa 0:sta:

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

Koodin suorituksen tulos:

php2

Esimerkki

Tässä esimerkissä on annettu kolmas parametri ja siksi haku alkaa kolmannesta sijainnista, tässä tapauksessa funktio löytää jo toisen merkin 'c' ja tulostaa sen sijainnin - 8:

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

Koodin suorituksen tulos:

php8

Esimerkki

Jos alimerkkiä ei löydy - funktio palauttaa false. Jos taas merkkijono on alussa, funktio palauttaa 0. Tämä voi olla ongelma verrattaessa lyhyen muodon ehdolla:

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

Koodin suorituksen tulos (ei sellainen, kuin odotimme):

php'---'

Esimerkki

Tehdään oikea tarkistus merkkijonon alusta:

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

Koodin suorituksen tulos:

php'+++'

Katso myös

  • funktion strrpos,
    joka palauttaa alimerkin viimeisen esiintymän sijainnin
  • funktion str_contains,
    joka tarkistaa merkin esiintymisen merkkijonossa
  • funktion str_starts_with,
    joka tarkistaa merkkijonon alun
  • funktion str_ends_with,
    joka tarkistaa merkkijonon lopun
  • funktion array_search,
    joka suorittaa haun taulukossa