Funkcija strpos
Funkcija strpos grąžina pirmojo eilutės fragmento atsiradimo vietą
kitoje eilutėje arba false, jei fragmentas nerastas.
Pirmuoju parametru funkcija priima eilutę,
kurioje vykdoma paieška, antruoju parametru
- fragmentą, kurį reikia ieškoti.
Pagal nutylėjimą funkcija ieško nuo eilutės pradžios iki pirmojo atitikimo. Paieškos pradžią galima reguliuoti trečiuoju neprivalomu parametru - jei jis nurodytas, paieška prasidės ne nuo pradžios eilutės, o nuo nurodytos vietos.
Taip pat yra funkcija stripos, kuri
daro tą patį, bet neatsižvelgiant į raidžių registrą.
Sintaksė
strpos(string $haystack, string $needle, int $offset = 0): int|false
Pavyzdys
Šiame pavyzdyje funkcija grąžins pirmojo
simbolio 'c' poziciją. Jis užima poziciją 2,
nes skaičiavimas prasideda nuo 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Kodo vykdymo rezultatas:
2
Pavyzdys
Šiame pavyzdyje nustatytas trečiasis parametras ir
todėl paieška prasidės nuo trečiosios pozicijos,
šiuo atveju funkcija ras jau antrąjį simbolį
'c' ir parodys jo poziciją - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Kodo vykdymo rezultatas:
8
Pavyzdys
Jei fragmentas nebus rastas - funkcija
grąžins false. Jei eilutė stovi
pradžioje, tai funkcija grąžins 0.
Tai gali sukelti problemų lyginant
naudojant trumpąją sąlygos formą:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Kodo vykdymo rezultatas (ne toks, kokio tikėjomės):
'---'
Pavyzdys
Atlikime teisingą eilutės pradžios patikrinimą:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Kodo vykdymo rezultatas:
'+++'
Taip pat žiūrėkite
-
funkciją
strrpos,
kuri grąžina paskutinio eilutės fragmento atsiradimo vietą -
funkciją
str_contains,
kuri tikrina ar simbolis yra eilutėje -
funkciją
str_starts_with,
kuri tikrina eilutės pradžią -
funkciją
str_ends_with,
kuri tikrina eilutės pabaigą -
funkciją
array_search,
kuri atlieka paiešką masyve