Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Zachowanie skryptu w zależności od wartości w polu "input".
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Mam formularz, a w nim jedno pole w które trzeba wpisać wartość.
I teraz w zależności co zostanie wpisane skrypt podejmie odpowiednie działania.

Jeśli jakiaś dowolna wartość to zrobi jedno, jeśli natomiast wartość będzie równa "wyjątek" to zrobi drugie.
Problem w tym, że takie słowo można napisać w różny sposób, np. "wyjątek", "Wyjątek", "WYJĄTEK", "WyJąTeK", itp.
  1. if ($zmienna == "wyjątek" OR $zmienna == "Wyjątek" OR $zmienna == "WYJĄTEK"){}

Czy da się napisać warunek tak, aby bez względu na to jak słowo zostanie wpisane został on spełniony?
Bez takiego kombinowania z OR jak na powyższym przykładzie.

Chciałbym nawet pójść o krok dalej i brać pod uwagę słowo ze spacją oraz literówką czyli np. "wyjątek ", "wyXątek", "wyjątekX".

Czy da się napisać skrypt, który akceptował by drobne błędy jak na powyższych przykładach?
Pyton_000
coś takiego:
  1. if(levenshtein(strtolower($zmienna), strtolower('wyjątek')) <= 1)


1 możesz zamienić na dowolną ilosć. Liczba ta mówi ile znaków trzeba zmienić aby oba słowa były takie same.
sadistic_son
@Pyton_000 masz literówkę... levenshtein (levenshtein)smile.gif
Pyton_000
True wink.gif Pisane z pamięci
Szunaj85
Zanim utworzyłem tutaj nowy temat też jako pierwsza przyszła mi do głowy funkcja strtolower.
Pyton_000 rozwiązanie ciekawe i wygląda na to, że działa. Szukając rozwiązania po drodze natrafiłem jeszcze na funkcje similar_text.
Jaka jest różnica między levenshtein a similar_text i która jest szybsza, lepsza?
Pyton_000
przetestuj a się dowiesz wink.gif Wystarczy zamienić funkcje.
Wydaje mi się że jeśli nie robisz 1mln porównań xx tyś znaków to nie ma znaczenia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.