21.04.2015 o 15:20

MiniPoradnik - strpos() nie działa prawidłowo

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

Komentarze
© 2010 - 2024 - Karol Drąg
Wszelkie prawa zastrzeżone
Polityka plików cookies