![]() |
![]() |
-Fabian- |
![]()
Post
#1
|
Goście ![]() |
Cześć
![]() mam taką prościutką funkcję:
wywołuję ją tak:
Niby wszytsko ładnie prosto... Ale nie działa ![]() 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%) ![]() ![]() |
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. -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
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ść ![]() @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 ![]() Co do funkcji @Fabian - wydaje być poprawna... Przetestuję i zobaczę ![]() -------------------- Podchodź pozytywnie do swojego kodu :)
|
|
|
![]()
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. -------------------- Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak czy siak kod powinien wygladac tak:
if($find !== false) { return true; } ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
-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ć. -------------------- Podchodź pozytywnie do swojego kodu :)
|
|
|
-Fabian- |
![]()
Post
#8
|
Goście ![]() |
Dobra z trimem zadziałało, dzieki
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 380 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: 19.08.2025 - 13:15 |