![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 30.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam nazwy zapisane w pliku .php oddzielone spacją, z których tworzę tablicę. Kod $start = 0; $baza1 = file_get_contents("./data/registeredusers.php"); $baza2 = explode(' ', $baza1); Dajmy na to że zawartość pliku wygląda tak: nazwa1 nazwa2 nazwa3 Chciałbym zrobić aby zmiennej $test funkcja while przypisała wartości wczytane z pliku w taki sposób: Kod $test = "nazwa1" or "nazwa2" or "nazwa3"; Aby zmienną $test można było potem wstawić do warunku if który sprawdzałby czy nazwa1 lub nazwa2 lub nazwa3 nie są identyczne z danym słowem. Czy da się coś takiego zrobić? -------------------- Procesor: 2,4 GHz Dysk: 180 GB Ramy: 1538 MB Grafika: GeForce 256 MB |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 30.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Działa, ale gdy wstawię tą zmienną do warunku, to za każdym razem jest spełniony.
Kod $baza1 = file_get_contents("./data/registeredusers.php"); $test = '"'.str_replace(' ', '" & $login !== "', $baza1).'"'; if ($test) {} Mimo to że wartość zmiennej $test to: $login !== "b" & $login !== "c" & $login !== "d" -------------------- Procesor: 2,4 GHz Dysk: 180 GB Ramy: 1538 MB Grafika: GeForce 256 MB |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 726 Pomógł: 129 Dołączył: 10.01.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Może if(eval($test)){}
-------------------- Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/ |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hehe
![]() if('"coś" or "coś"') to nie to samo, co if('coś' or 'coś') Nie oczekuj, że PHP 'domyśli się', co akurat miałeś na myśli ![]() Proponuję tak:
Ten post edytował sowiq 31.10.2008, 18:20:07 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Bo tak się nie da. PHP traktuje zawartość zmiennej jako string, a że jest on inny od 0 to warunek zostaje spełniony.
Doraźnym rozwiązaniem tego problemu jest odpowiednie użycie eval: http://pl2.php.net/manual/pl/function.eval.php Ale odradzam. Dużo lepiej po prostu wczytać wszystkie loginy do tablicy, a później zrobić warunek:
prawda, że prościej? ![]() http://pl2.php.net/manual/pl/function.in-array.php -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 30.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Teraz działa, bo zwraca FALSE, ale wyskakuje błąd:
Kod [b]Parse error[/b]: syntax error, unexpected $end in [b]D:\Serwer\a\actions\reg.php(26) : eval()'d code[/b] on line [b]1[/b] Aha, jeszcze jest jeden bały błąd podczas wczytywania danych do zmiennej $test, bo jako pierwsza wczytuje się literka "a", bez $login !== : Cytat "a" & $login !== "b" & $login !== "c" & $login !== "d" EDIT: Błąd ten wyskakuje po użyciu eval. Ten post edytował Tomek58 31.10.2008, 18:21:26 -------------------- Procesor: 2,4 GHz Dysk: 180 GB Ramy: 1538 MB Grafika: GeForce 256 MB |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie &, tylko && (jeśli masz na myśli AND)
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 30.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc. Z użyciem in_array jest dużo prościej
![]() Pozdrawiam -------------------- Procesor: 2,4 GHz Dysk: 180 GB Ramy: 1538 MB Grafika: GeForce 256 MB |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:50 |