![]() |
![]() |
-Fabian- |
![]()
Post
#1
|
Goście ![]() |
Cześć (IMG:style_emoticons/default/wink.gif)
mam taką prościutką funkcję:
wywołuję ją tak:
Niby wszytsko ładnie prosto... Ale nie działa (IMG:style_emoticons/default/tongue.gif) Funkcja za każdym razem zwraca false, anwet wtedy kiedy podaję tekst z przekleństwem będącym w pliku bad-words.txt. Ktoś ma pomysł, dlaczegoż to nie chce działać ;/ ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 9 Dołączył: 11.10.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dlatego, że strpos zwraca pozycję danego substringu, lub FALSE. Dlatego $find === true nigdy nie będzie miało wartości logicznej true. Możesz ten warunek przepisać tak:
A po wyjściu z pętli zwracasz true. Cześć (IMG:style_emoticons/default/wink.gif) @vonski - zapomniałeś, że PHP rzutuje typy zmiennych. Skoro $find przybiera integer'a, a porównujemy go do boola, to jest on rzutowany na bool'a. A dokładniej na true (IMG:style_emoticons/default/smile.gif) Co do funkcji @Fabian - wydaje być poprawna... Przetestuję i zobaczę (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 292 Pomógł: 89 Dołączył: 27.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
PHP rzutuje typy przy porównaniu za pomocą tego operatora: ==
Operator identyczności (===) porównuje wartość i typ - bez rzutowania. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak czy siak kod powinien wygladac tak:
if($find !== false) { return true; } (IMG:style_emoticons/default/wink.gif) |
|
|
-Fabian- |
![]()
Post
#6
|
Goście ![]() |
Nie wiem ale to dalej nie działa. I z poprawkami nospora i jakuba. Ja już nie wiem co jest nie tak!!
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 9 Dołączył: 11.10.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
No tak. To nie jest kwestia rzutowania czy warunków.
Funkcja file() zwraca wiersze w tablicy, ale ze znakiem nowej lini. Użyj trim() i powinno działać. |
|
|
-Fabian- |
![]()
Post
#8
|
Goście ![]() |
Dobra z trimem zadziałało, dzieki
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
file() ma coś takiego jak flagi. Dokumentacja się kłania.
FILE_IGNORE_NEW_LINES |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 16:25 |