Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wyszukiwanie wyrazu w pliku
Forum PHP.pl > Forum > Przedszkole
zmora1
Witam mam taki oto problem: mam na serwerze słownik (każdy wyraz w innej linii) do którego każdy może dodać słowo i chciałbym sprawdzać czy podany wyraz już w pliku nie występuje, próbowałem coś takiego ale nie działa:/:
  1. If(isset($_POST['slowo'])){
  2. $sl=$_POST['slowo'];
  3. $plik = file("slownik.txt");
  4. $l=0;
  5. foreach($plik as $value) {
  6. if($sl==$value){$l=1;break;}
  7. }}

gdzie $l sygnalizuje znalezienie słowa lub nie
Blame
Pokaż nam jeszcze jak wygląda taka przykładowa linia w tym pliku winksmiley.jpg
smietek
Spróbuj tak:
  1. foreach($plik as $slowo){
  2. if(trim($slowo) == trim($sl)){
  3. $l = 1;
  4. break;
  5. }
  6. }
zmora1
Sposób smietka nie działa
a to kilka linii z mojego słownika:
Kod
zydzie
zygelbauma
zygfryda
zygielbojma
zygmunt
zygmunta
zygmuntowi
zygolak
zygot
Blame
Wczytujesz pliczek do tablicy za pomocą file i sprawdzasz czy jest w tablicy takie słowo za pomocą in_array.
zmora1
A mógłbyś podać przykład bo trochę zielony jestem, a tak dla dodania w pliku jest 109863 hasła
smietek
Przetestowałem ten kod:
  1. if(isset($_GET['slowo'])){
  2. $sl=trim($_GET['slowo']);
  3. $plik = file("slownik.txt");
  4. $l=0;
  5. foreach($plik as $value) {
  6. if($sl==trim($value)){
  7. $l=1;break;
  8. }
  9. }
  10. }
  11. echo 'Zmienna: '.$l;

Dla ułatwienia sprawdzenia zmieniłem zmienną na $_GET (nie musiałem mieć formularza).
Skrypt działa bez zarzutu, więc nie wiem co ty robisz, że Ci nie działa...

A przykład z in_array:
  1. if(isset($_GET['slowo'])){
  2. $sl = trim($_GET['slowo']);
  3. $plik = file("slownik.txt");
  4. $l=0;
  5. if(in_array($sl, $plik)){
  6. $l = 1;
  7. }
  8. }

Oczywiście musisz pozmieniać sobie $_GET na $_POST.

@down:
Wole mu od razu pomóc, niż potem miałby mnie zasypywać tysiącami wiadomości, bo coś niejasno mu wytłumaczyłem...
Blame
Cytat(zmora1 @ 25.06.2010, 21:49:05 ) *
A mógłbyś podać przykład bo trochę zielony jestem

A może byś tak spróbował sam, w manualu masz wszystkie potrzebne informacje. Widzę jednak smietek, że go wyręczyłeś, w nagrodę dostaniesz uścisk przyszłego prezydenta, +1 do pomógł, no i jeszcze mogę ci dorzucić bilet na wawel żebyś mógł uścisnąć też tego starego.
Cytat(zmora1 @ 25.06.2010, 21:49:05 ) *
a tak dla dodania w pliku jest 109863 hasła

To może najwyższa pora przerzucić się na bazę danych? Dlaczego? Ano wystarczy, że 2-3 osoby będą chciały w tym samym czasie dodać hasło i już możesz mieć po swoim pliczku. Ew. możesz dla każdej litery zrobić osobny plik, tak będzie bezpieczniej mimo wszystko.
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.