Funcția strpos
Funcția strpos returnează poziția
primei apariții a unui substring într-un alt string
sau false, dacă substringul nu este găsit.
Primul parametru al funcției primește stringul
în care se efectuează căutarea, al doilea parametru
- substringul care trebuie căutat.
Implicit, funcția caută de la începutul stringului până la prima potrivire. Începutul căutării poate fi regulat cu al treilea parametru opțional - dacă este specificat, căutarea va începe nu de la începutul stringului, ci de la poziția indicată.
Există și funcția stripos, care
face același lucru, dar fără a ține cont de majuscule/minuscule.
Sintaxă
strpos(string $haystack, string $needle, int $offset = 0): int|false
Exemplu
În acest exemplu funcția va returna poziția primului
simbol 'c'. Acesta ocupă poziția 2,
deorece numărătoarea începe de la 0:
<?php
echo strpos('abcde abcde', 'c');
?>
Rezultatul executării codului:
2
Exemplu
În acest exemplu este setat al treilea parametru și
prin urmare căutarea va începe de la a treia poziție,
în acest caz funcția va găsi deja al doilea simbol
'c' și va afișa poziția sa - 8:
<?php
echo strpos('abcde abcde', 'c', 3);
?>
Rezultatul executării codului:
8
Exemplu
Dacă substringul nu va fi găsit - atunci funcția
va returna false. Dacă stringul se află
la început, atunci funcția va returna 0.
Aceasta poate fi o problemă la compararea
prin forma scurtă a condiției:
<?php
if (strpos('http://site.ru', 'http://')) {
echo '+++';
} else {
echo '---';
}
?>
Rezultatul executării codului (nu așa cum ne așteptam):
'---'
Exemplu
Să executăm verificarea corectă a începutului stringului:
<?php
if (strpos('http://site.ru', 'http://') === 0) {
echo '+++';
} else {
echo '---';
}
?>
Rezultatul executării codului:
'+++'
Vedeți și
-
funcția
strrpos,
care returnează poziția ultimei apariții a unui substring -
funcția
str_contains,
care verifică apariția unui simbol într-un string -
funcția
str_starts_with,
care verifică începutul unui string -
funcția
str_ends_with,
care verifică sfârșitul unui string -
funcția
array_search,
care efectuează căutarea într-un array