Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] wyszukiwanie wyrazu w pliku
zmora1
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.01.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował zmora1 25.06.2010, 19:57:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Pokaż nam jeszcze jak wygląda taka przykładowa linia w tym pliku (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
smietek
post
Post #3





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


Spróbuj tak:
  1. foreach($plik as $slowo){
  2. if(trim($slowo) == trim($sl)){
  3. $l = 1;
  4. break;
  5. }
  6. }


Ten post edytował smietek 25.06.2010, 20:11:52
Go to the top of the page
+Quote Post
zmora1
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.01.2010

Ostrzeżenie: (0%)
-----


Sposób smietka nie działa
a to kilka linii z mojego słownika:
Kod
zydzie
zygelbauma
zygfryda
zygielbojma
zygmunt
zygmunta
zygmuntowi
zygolak
zygot
Go to the top of the page
+Quote Post
Blame
post
Post #5





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Wczytujesz pliczek do tablicy za pomocą file i sprawdzasz czy jest w tablicy takie słowo za pomocą in_array.
Go to the top of the page
+Quote Post
zmora1
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.01.2010

Ostrzeżenie: (0%)
-----


A mógłbyś podać przykład bo trochę zielony jestem, a tak dla dodania w pliku jest 109863 hasła
Go to the top of the page
+Quote Post
smietek
post
Post #7





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


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...

Ten post edytował smietek 26.06.2010, 09:28:24
Go to the top of the page
+Quote Post
Blame
post
Post #8





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 00:10