Czy też mieliście lub macie problem z strpos() w php? Niby oba stringi, które porównujecie są takie same albo zawierają ten sam fragment, a mimo to funkcja ta nie działa prawidłowo?
Pewnie stosowaliście takie porównania
if($spr === TRUE)
if($spr !=== TRUE)
Takie przypadki znalazłem na internecie, ale żadne nie działają prawidłowo. Rozwiązanie jest bardzo proste. Na początek pytanie.
Jak działa funkcja strpos();
Otóż po podaniu dwóch parametrów t.j. stringa z tekstem i drugiego stringa z fragmentem, który chcemy znaleźć w pierwszym stringu, funkcja ta porównuje oba stringi. Jeśli znajdzie to zwraca liczbę, która oznacza miejsce w stringu od którego zaczyna się szukany string.
Problem w tym, że gdy funkcja zwróci „0”, to porównując przez if() zamienia zero na FALSE. A tak być nie powinno. Rozwiązaniem jest funkcja sprawdzająca czy zwrócona wartość przez strpos(), to liczba czy nie. Przykładem funkcji jest is_int().
Można to zapisać tak:
if(is_int($spr)){
//tutaj kod jaki ma się wykonać jeśli string szukany istnieje
}
Jest to moim zdaniem najlepsze i najprostsze rozwiązanie 🙂
Jeśli znacie inne, to dajcie znać w komentarzach.
DraG
