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)
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:
$spr = strpos($string, $szukanyString);
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.
Pozdrawiam
DraG