Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: znowu słownik
Forum PHP.pl > Forum > Przedszkole
dexter_m
Robie słownik niemiecko-polski. Wszystko jest ok, bo przepisuję cały słownik w ten sposób:

Kod
if (isset($wysylaj))
{

// TU SIE WSZYSTKO ZACZYNA
switch($word)
 {
  case "Aal":
  $value="węgorz";
  break;
//--------------------------------

  case "Aar":
  $value="orzeł";
  break;
//--------------------------------

  case "Aas":
  $value="padlina";
  break;
//--------------------------------

  case "ab":
  $value="od (ab heute - od dziś)";
  break;
//--------------------------------

  case "ab*ändern":
  $value="zmieniać";
  break;
//--------------------------------

  case "änderung":
  $value="zmiana";
  break;
//--------------------------------


i tak dalej...

No i pojawił się problem. Jak użytkownik wpisze małą literą änderung(zmiana), to jest all ok, ale jak już dużą to zmiennej $word już nie zostanie przypisana wartość änderung.
Jak zrobić żeby użytkownik mógł sobie wpisywać jakimi chce literami (durzymi lub małymi), a abym ja otrzymał upragniony efekt... sad.gif
Oczywiście ten problem dotyczy wszystkich słów ze słownika, nie tylko änderung.

Pozdrawiam, dexter.
ikioloak
nie jestem pewien co u ciebie ktroa zmienna znaczy ale zainteresuj sie funkcja strtolower()
W twoim przypadku chyba powinno rozwiazac problem
  1. <?php
  2.  
  3. ...
  4. switch(strtolower($word))
  5. ...
  6.  
  7. ?>

i wtedy zalozenie jest takie ze wszystkie dane w slowniku podajesz malymi literami.
dexter_m
Funkcją tą zainteresowałem się już na początku nauki php, jednak nie wpadłem na taki pomysł. tongue.gif

Dzięki, działa. rolleyes.gif
ikioloak
Sorry za OT ale nie mow ze chcesz w ten sposob slownik robic? Kurcze to chyba troche malo.. wygodne. Nie lepiej na bazie albo pliku txt oprzec?
dexter_m
Myślałem nad tym. Jednak opierając to na plikach lub bazie i tak nic nie zmienię. Bez względu na wszystko muszę przepisać cały słownik (80 tyś haseł). sad.gif Już napisałem 670 słów. winksmiley.jpg

Chyba że...
Może ktoś zna jakąś stronkę w internecie z durzą ilością haseł (słów) niemieckich z wyjaśnieniami po polsku, i polskich z wyjaśnienieami po niemiecku. To bym wtedy "zaporzyczył" te słówka, utworzył 2 pliki tekstowe (jeden z słówkami niemieckimi drugi z polskimi). No i bym utworzył pętelkę i odczytał każdy wiersz po kolei. (słowo niemieckie - słowo polskie). Hmm, nie głupi pomysł.
Co o tym sądzicie?

Pozdrawiam, dexter.
gladiror
Możesz również użyć funkcji zmieniającej znaki:

str_replace("A", "a", $slowo);

Będzie Ci zamieniać duże litery na małe w zmiennej $slowo... Ale slownik zrob sobie w bazie danych -> poszukaj sobie jakiejs stronki ze sklowkami, wrzuc wszystko do Excela, w Excelu pododawaj zapytania (inserty i reszte) i kilka klikniec i kilkatysiecy hasel dodanych...
dexter_m
Cytat
Może ktoś zna jakąś stronkę w internecie z durzą ilością haseł (słów) niemieckich z wyjaśnieniami po polsku, i polskich z wyjaśnienieami po niemiecku. To bym wtedy "zaporzyczył" te słówka, utworzył 2 pliki tekstowe (jeden z słówkami niemieckimi drugi z polskimi). No i bym utworzył pętelkę i odczytał każdy wiersz po kolei. (słowo niemieckie - słowo polskie). Hmm, nie głupi pomysł.
Co o tym sądzicie?


Co do baz danych to jeszcze się ich uczę. Dlatego chciałem zrobić słownik oparty na plikach.
soldat
Wydaje mi się, że różne słowniki (w sensie - pliki ze słowkami) są udostępniane na zasadzie OS m.in. na sourceforge.net - co prawda nie jestem pewien, czy jest tam akurat słownik polsko-niemiecki, tym niemniej na Twoim miejscu najpierw bym poszukał.
BTW szczerze podziwiam Twoją cierpliwość, skoro masz zamiar przepisywania tylu haseł smile.gif
dexter_m
Cytat
BTW szczerze podziwiam Twoją cierpliwość, skoro masz zamiar przepisywania tylu haseł 


Hmmm, rolleyes.gif , po napisaniu 687 słówek, wpadłem na pomysł. Właśnie ściągnełem sobie taki słownik, (ze strony chipa) i wszystkie słówka mam w notatniku odzielone myślnikiem. (arbeiten-pracować) itd. Teraz pozostaje już tylko to jakoś sensownie połączyć. Tylko jak...
Chyba trzeba użyć funkcji czytającej wers po wersie i pętli for. Sam nie wiem, jak to zrobić. Proszę o pomoc... sad.gif sad.gif

Mam nadzieję że jakoś sobie poradzę ( chyba worriedsmiley.gif ). Jeśli macie jakieś pomocne wskazówki to proszę śmiało pisać. Z góry dzięki!

Pozdrawiam, dexter.
gladiror
Moim zdaniem warto jest zrobić to w taki sposób:
utworzyć 3 foldery:
1. "POL" -> słówko w jezyku polskim
2. "NIE" -> słówko w jezyku niemieckim
3. "GRAM" -> jakas gramatyka

W każdym z folderów tworzyć pliki, np. 1.dat, 2.dat... itd. ->

1.dat w folderze POL niech zawiera -> pracować
2. dat w folderze NIE niech zawiera -> arbaiten
3. dat w folderze GRAM niech zawiera -> czasownik, bezokolocznik lub coś w tym stylu...

Co myślisz o takim sposobie?
yavaho
Cytat(dexter_m @ 2005-08-05 17:07:53)
Właśnie ściągnełem sobie taki słownik, (ze strony chipa) i wszystkie słówka mam w notatniku odzielone myślnikiem.
No wiec mozna powiedziec ze 95% pracy masz juz za sobą smile.gif
Tez ci polecam abys to zrobil na bazie danych. W kazdej chwili bedziesz mogł np dołożyć dodatkowe pola (opisujace dane słowo, lub z synonimami danego słowa itp) Po prostu jezeli zaistnieje jakas potrzeba zmany lub modernizacji slownika to zrobisz to o wiele prosciej.
Ten skrypt czyta plik tekstowy ustawiajac kazda linie w osobnym rekordzie w tabeli.
  1. <?php
  2.  $plik='lista.txt';
  3.  $tablica = file($plik);
  4.  if($tablica){
  5.  foreach($tablica as $i => $line){
  6.  $line = substr($line, 0 ,strlen($line)-2); // obcina znaki entera (opcjonalnie)
  7.  $td=explode('-',$line); // odziela dwa slowa na podstawie znaku \"-\"
  8.  echo($td[0].' = '.$td[1].'<br />'.&#092;"rn\");
  9.  }
  10.  }
  11. ?>
Teraz wystarczy w ta petle dopisac zapytanie ktore bedzie to wrzucac do bazy danych.
Nawet to co wklepales do tej pory mozna zaimportowac w podobny sposob do bazy danych.
dexter_m
Cytat
Co do baz danych to jeszcze się ich uczę. Dlatego chciałem zrobić słownik oparty na plikach.


Projekt gladitora jest pomysłowy. Tak też można zrobić. Gorzej z wykonaniem sad.gif

yavaho - tylko pliki. Fajnie by było jakbyś pomógł mi zrobić coś takiego ale na plikach.
AxZx
pomysl gladiatora nie jest dobry, 50 tys hasel to 50 tys plikow
po co w kazdym pliku robic osobne haslo?

mozna podzielic ze jeden plik to litera A
itd
a w pliku A
polski_wyraz | niemiecki_wyraz
jak cos bedzie trzeba zedytowac tez mozna dolozyc kolejna kolumne
ale praca na pojedynczych plikach jest nieoptymalna

mysql nie jest trudny - polecam smile.gif
dexter_m
Wiem, wiem - niedługo nauczę się MySQL . ale do tej pory muszę robić to na plikach. A nie mogą wszystkie słowa być w jednym pliku??
AxZx
to nie ma sensu
zrob od poczatku to w bazie, pozniej znowu bedziesz musial sie meczyc zeby to do bazy wprowadzic
moze byc w jednym pliku ale moze to topornie dzialac, tzn moga byc takie jaja ze dane zostana utracone co sie zdarza czesto.
dexter_m
ok, rozumiem, trudno. sad.gif
yavaho
Jak poznasz baze danych to zrozumiesz jej wyzszosc nad plikami. Odpadnie ci mnostwo kodu do napisania, bo takie funkcje jak zapis, odczyt, wybierz, sortuj i wiele innych zrobisz praktycznie w jednym zapytaniu do bazy w kliku linijkach kodu.
Pomysl teraz ile kodu trzeba by bylo napisac w przypadku plikow gdybys np chcial ze srodka pliku tekstowego usunac jedna linie (jedno slowo).
dexter_m
Cytat
Pomysl teraz ile kodu trzeba by bylo napisac w przypadku plikow gdybys np chcial ze srodka pliku tekstowego usunac jedna linie (jedno slowo).


Wcale nie tak durzo. Ale rozumiem. Bazy danych są znacznie "elastyczniejsze" od plików. Sprubuję jak najszybciej się ich nauczyć.
Ale teraz idę leniuchować. Jestem zmęczony... tiredsmiley.gif
gladiror
Nie gladiatora tylko gladiror'a ;D Ale przyznaje moim przedmówcom rację, że bazy danych to niebo w porównaniu z operacjami na plikach... Kiedyś robiłem operacje na plikach (jak nie znałem jeszcze MySQL'a) -> np. imieniny na każdy dzień... a teraz baze danych wole bo łatwiej jest i szybciej... Lepiej naucz sie MySQL'a. Nie jest trudny... Dzień cierpliwości i będziesz miał z górki winksmiley.jpg

Ale jeżeli bardzo Ci zależy, żeby to zrobić na plikach to daj znać to pomoge winksmiley.jpg

Cytat
pomysl gladiatora nie jest dobry, 50 tys hasel to 50 tys plikow
po co w kazdym pliku robic osobne haslo?


Nie wiesz po co? Żeby później zrobić króciutki skrypcik i wszystko masz w bazie danych... W końcu proszono o operacje na plikach winksmiley.jpg
AxZx
i dexter_m bedzie mial 100 tys plikow na serwerze smile.gif)
gladiror
150 tys. jeżeli już (z założenia mojego projektu biggrin.gif )
dexter_m
Ale się wyspałem... rolleyes.gif
Nie, nie nie, smile.gif Robienie tylu plików to trochę bezsensu...
Dobra, to ja wezmę się do nauki MySQL. Zapytam jeszcze z ciekawości: Mniejwięcej ile wam zajeła nauka samego MySQL??

Pozdrawiam, dexter.

PS. Co do tych plików to ja myślałem że wszystkie słowa były by w jednym pliku odzielone myślnikiem. No i potem funkcją explode(), rozdzielić seperatorem "-" i coś dalej kombinować...
zombie
na plikach serwer zaorzesz przeszukujac wszystko po kolei. na bazie zrobisz to jednym zapytaniem. potrzebny Ci tylko skrypt, ktory ten slownik wrzuci do bazy, a potem wystarczy:
  1. SELECT niemiecki
  2. FROM baza WHERE polski = 'szukane slowo'
... i po klopocie... potem mozesz dopracowac wyszukiwarke uzywajac LIKE... jak sie przylozysz opanujesz to w jeden dzien ... tzn. nie calego SQL'a, ale prosta obsluge slownika smile.gif
dexter_m
Dzięki Zombie. Ale chodziło mi też o to w ile dni/tygodni/mieśęcy opanowaliście całego SQL-a.
gladiror
Żeby dodawać rekordy/usuwać pisać podstawowe skrypty dla osoby w ogóle nie wtajemniczonej hmm... dzień... Zobaczysz jaki prosty jest MySQL, a jaki funkcjonalny...
yavaho
Dla potrzeb tego slownika - jeden dzien smile.gif Ale jak juz zaczniesz to bedziesz sie uczyl MySQL cale zycie tak jak to jest w przypadku php. A w ogule to ja juz nie wyobrazam sobie teraz php bez komunikacji z baza danych.

Aby uruchomic proste polecenia (polaczenie z baza, stworzenie tabeli, wrzucenie przykladowych danych i potem ich odczyt) to trzeba poznac najprostrze zapytania do bazy Kurs MySQL Potem na podstawie tych zapytan bedziesz budowal bardziej zaawansowane skrypty w php.
espanol
to jak wyglada w koncu kod do zczytania pliku tekstowego i wpisanie jeog zawartosc do bazy (chodzi mi o wpisanie do bazy bo kod zczytania jest)

biggrin.gif
strife
Cytat(espanol @ 26.06.2006, 20:21 ) *
to jak wyglada w koncu kod do zczytania pliku tekstowego i wpisanie jeog zawartosc do bazy (chodzi mi o wpisanie do bazy bo kog zczytanie jest)

biggrin.gif

to jak wyglada w koncu kod do zczytania pliku tekstowego i wpisanie jeog zawartosc do bazy (chodzi mi o wpisanie do bazy bo kog zczytanie jest)

biggrin.gif

Proszę Cię pisz po polsku !

Z tego co zrozumiałem mogę powiedzieć ... - Plik tekstowy, możesz odczytać poprzez » file_get_contents" title="Zobacz w manualu php" target="_manual, a wpisanie do bazy jego zawartości, poprzez połączenie się, wybranie bazy i wywołanie zapytania. Poczytaj, poszukaj - nie czekaj na gotowe winksmiley.jpg

ps. trochę nekro ten temat tongue.gif

» edit
Od razu lepiej smile.gif Generalnie, napisz to dokładniej jeszcze raz, winksmiley.jpg
espanol
Gdybym znalazł to bym sie nie pytał biggrin.gif . Już nie mówie ze chce gotowy kod ale jakis link to danego temtu by sie przydał

Nie oszukujny się znalezienie czegokolwiek na tym forum graniczy z cudem


Ok postaram sie opisac najdokładniej jak potrafie . Załozyciej postu chcial recznie wpisac cały słownik do bazy danych. Lecz wnet ktoś dał srypcik czytajacy plik *.txt . Własnie takowy plik posiadam i nie wiem jak wpisac go do bazy danych .Tabele juz zrobiłem ( bo to umiem ) pod nazwą:slownik i wierszmi : polski i espanol .

Chyba opisałem dobrze więc jak zrobić by wpisał mi do bazy wynik zczytania
bo nie wyobrarazm sobie wpisywac:
  1. INSERT INTO `slownik` VALUES ('dobry', 'bueno');
strife
Cytat(espanol @ 26.06.2006, 20:52 ) *
Gdybym znalazł to bym sie nie pytał biggrin.gif . Już nie mówie ze chce gotowy kod ale jakis link to danego temtu by sie przydał

Nie oszukujny się znalezienie czegokolwiek na tym forum graniczy z cudem
Ok postaram sie opisac najdokładniej jak potrafie . Załozyciej postu chcial recznie wpisac cały słownik do bazy danych. Lecz wnet ktoś dał srypcik czytajacy plik *.txt . Własnie takowy plik posiadam i nie wiem jak wpisac go do bazy danych .Tabele juz zrobiłem ( bo to umiem ) pod nazwą:slownik i wierszmi : polski i espanol .

Chyba opisałem dobrze więc jak zrobić by wpisał mi do bazy wynik zczytania
bo nie wyobrarazm sobie wpisywac:
  1. INSERT INTO `slownik` VALUES ('dobry', 'bueno');

No o to mi chodziło. Napiszę szybko bo chcę iść na mecz tongue.gif Mając taki skrypt, który czyta słowa z pliku tekstowego i je rozdziela:
  1. <?php
  2. $plik='lista.txt';
  3. $tablica = file($plik);
  4. if($tablica){
  5.  foreach($tablica as $i => $line){
  6.  $line = substr($line, 0 ,strlen($line)-2); // obcina znaki entera (opcjonalnie)
  7.  $td=explode('-',$line); // odziela dwa slowa na podstawie znaku "-"
  8.  echo($td[0].' = '.$td[1].'<br />'."rn");
  9.  }
  10. }
  11. ?>

Kod
slowo polskie-slowo hiszpanskie

Będzie on, tutaj rozdzielał te dwa słowa po linijce, a jeśli chcesz dodać je do bazy to w środku pętli dajesz zapytanie, wyglądało by to mniej więcej tak:
  1. <?php
  2. $connect = mysql_connect('localhost', 'root', 'pass' ) or die( mysql_error() );
  3. $select = mysql_select_db( 'baza' ) or die( mysql_error() );
  4.  
  5. $plik='lista.txt';
  6. $tablica = file($plik);
  7. if($tablica){
  8.  foreach($tablica as $i => $line){
  9.  $line = substr($line, 0 ,strlen($line)-2); // obcina znaki entera (opcjonalnie)
  10.  $td=explode('-',$line); // odziela dwa slowa na podstawie znaku "-"
  11.  // echo($td[0].' = '.$td[1].'<br />'."rn");
  12.  $query = mysql_query( "INSERT INTO `slownik` SET `polski` = '" . $td[0] . "', `espanol` = '" . $td[1] . "' ;");
  13.  }
  14. }
  15. ?>

Mam nadzieję, że zrozumiałeś zasadę jak to ma działać.

Pozdrawiam!
espanol
  1. <?php
  2. Parse error: syntax error, unexpected '"' in C:Program FilesWebServhttpdindex.php on line 12
  3. ?>


cos jest nie tak z " ale nie moge za cholere dojsc które
strife
Cytat(espanol @ 26.06.2006, 21:42 ) *
  1. <?php
  2. Parse error: syntax error, unexpected '"' in C:Program FilesWebServhttpdindex.php on line 12
  3. ?>


cos jest nie tak z " ale nie moge za cholere dojsc które

Linijka 12 to jest ta z tym:
  1. <?php
  2. $query = mysql_query( "INSERT INTO `slownik` SET `polski` = '" . $td[0] . "', `espanol` = '" . $td[1] . "' ;");
  3. ?>

a tutaj wygląda, że wszystko jest dobrze winksmiley.jpg Więc może źle skopiowałeś?
Gość_bikstopa_*
a nie lepiej zrobic 1 plik TXT w ktorym zapiszesz

"slowopl" = "slowoniem"

a potem poprzez 2 petle bedziesz to sprawdzac

1 petla dla file a 2 dla explode
i po sprawie
Michasko
  1. <?php
  2. $query = mysql_query( "INSERT INTO `slownik` SET `polski` = '" . $td[0] . "', `espanol` = '" . $td[1] . "'");
  3. ?>


może tak? nie wiem...ale dlaczego autor w zapytaniu umieścił średnik? smile.gif może ja sie myle, ale raczej tak być niepowinno, i to chyba zwykła literówka była smile.gif

edit: coś to forum slashe dodaje i psuje kod :|
espanol
wszystko było dobrze okazało sie ze trzeba było zrestartować apache'a smile.gif

dziekuje wszystkicm zaiteresowanym

jeszcze raz zmieszcze kod by juz nikt sie nie pogubił !
  1. <?php
  2. $connect = mysql_connect('localhost', 'uzytkownik', 'haslo' ) or die( mysql_error() );
  3. $select = mysql_select_db( 'twoja_baza' ) or die( mysql_error() );
  4. $plik='twoj_plik.txt';
  5. $tablica = file($plik);
  6. if($tablica)
  7. {
  8.  foreach($tablica as $i => $line){
  9.  $line = substr($line, 0 ,strlen($line)-2); // obcina znaki entera (opcjonalnie)  
  10.  $td=explode('-',$line); // tu mozna wstawić dowolny znak (nawet ciąg znaków) np: za pomoca znaku -
  11.  //echo($td[0].' ->'.$td[1].'<br />'."rn");
  12.  $query = mysql_query( "INSERT INTO `slowa` SET `espanol` = '" . $td[0] . "', `polski` = '" . $td[1] . "' ;");  
  13.  }
  14.  }
  15. ?>



no i pech ... kodowanie nawala ... ale nie od strony wiesza 'espanol' tylko ' polski'
strife
Cytat(Michasko @ 27.06.2006, 09:13 ) *
może tak? nie wiem...ale dlaczego autor w zapytaniu umieścił średnik? smile.gif może ja sie myle, ale raczej tak być niepowinno, i to chyba zwykła literówka była smile.gif

Spróbuj wykonać to zapytanie z konsoli mysql bez średnika winksmiley.jpg

Cytat(espanol @ 27.06.2006, 09:47 ) *
no i pech ... kodowanie nawala ... ale nie od strony wiesza 'espanol' tylko ' polski'

Zapisz ten plik ze słowami w kodowaniu UTF-8, w takim samym kodowaniu z bazy odczytuj te dane to nie powinieneś mieć problemów winksmiley.jpg
espanol
Bez średnika tez chodzi tak samo smile.gif

Kodowanie na localhost mam latin1 (nie wiem gdzie zmienic na utf8 w samej konfiguracj i serwera)
Mam serwer na yoyo.pl (testowy) wrzuciłem tam pliki txt w utf8 kodowanie w bazie utf8_polish_ci czy jakos tak . Zaladuje moj plik txt i dziwne znaki

1. Wyglad bazy :
  1. <?php
  2. ďťż que aby 
  3.  que by 
  4.  quĂŠ co 
  5.  probablemente chyba 
  6.  si czy 
  7.  czyĹź czyĹź 
  8.  no nie 
  9.  sĂ­ no 
  10.  tambiĂŠn teĹź 
  11.  pero zaś 
  12.  que Ĺźe 
  13.  sie sie
  14. ?>


2. a jak wyświetla mi po wpisaniu w przegladarce mojego pliku index to mam coś takiego
  1. <?php
  2. que=aby
  3. que=by
  4. qué=co
  5. probablemente=chyba
  6. si=czy
  7. czyż=czyż
  8. no=nie
  9. =no
  10. ?>


czyli wszystko ok z poziomu przeglądarki a w bazie nie .... moze ktos mi to wytłumaczyć

sory ze jeden post pod drugim ale czytałem ze jakies programy konwertuja nasz tekst do utf8 ,
chodz ja to robiłem notepad++ .Moze jakies sa inne programy przez was sprawdzone .
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.