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
strpos(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
echo strpos('abcde abcde', 'c');
?>
Koodin suorituksen tulos:
2
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
echo strpos('abcde abcde', 'c', 3);
?>
Koodin suorituksen tulos:
8
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
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Koodin suorituksen tulos (ei sellainen, kuin odotimme):
'---'
Esimerkki
Tehdään oikea tarkistus merkkijonon alusta:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Koodin suorituksen tulos:
'+++'
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