Autor | Zpráva | ||
---|---|---|---|
JanSvabikCZ Profil |
#1 · Zasláno: 16. 7. 2013, 22:24:34
Zdravím, potřeboval bych pomoc s PHP... Nevíte, nebo nemáte alespoň někdo tušení, jak napsat PHP aplikaci, která bude fungovat jako překladač? Nevím si totiž rady... Měl jsem to vlastně vyřešené, a to přes switch:
<?php $input = strtolower($_GET['word']); switch ($input) { case "a": $translated = "a/and"; break; case "abatyš": case "abatyše": $translated = "abbess"; break; case "abbé": $translated = "abbe"; break; case "abdikace": case "abdikační": $translated = "abdication"; break; default: $translated = "[slovo není ve slovníku]"; break; } ?> Samozřejmě tam mám více slov, ale nebudu sem přece všechno vypisovat ;-) ... Nakonec jsem se rozhodl, že to udělám do souboru... Potřeboval bych PHP skript, který by to zajistil (asi takto): prekladac.php <?php // to právě nevím ?> soubor.txt české slovo nebo věta|anglické slovo nebo věta (překlad)|a alternativní překlad ukázka soubor.txt a|a|and abatyš|abbess|- abatyše|abbess|- abbé|abbe|- abdikace|abdication|- abdikační|abdication|- adaptace|adaptation|conversion, alteration ... To je asi vše... Budu všem vděčný za každou pomoc... :) |
||
abc Profil |
#2 · Zasláno: 16. 7. 2013, 22:36:12
JanSvabikCZ:
Dobrý večer, rovnou se zeptám: 1) datábáze není k dispozici? 2) předpokládal bych, že když si někdo účtuje 30.000 Kč/e-shop (dle Vašich www), bude umět naprogramovat překladač |
||
JanSvabikCZ Profil |
#3 · Zasláno: 16. 7. 2013, 22:42:30
Databáze je k dispozici, ale nerad to přes ně dělám. Ty mé stránky nejsou kompletní a je tam napsáno, že se vše připravuje.
|
||
abc Profil |
#4 · Zasláno: 16. 7. 2013, 22:44:24
JanSvabikCZ:
Přes soubory to ale bude pomalé - kolik očekáváte řádků? |
||
JanSvabikCZ Profil |
#5 · Zasláno: 16. 7. 2013, 22:46:09
No, hodně... :) Možná časem budu data dávat do databáze, ale zatím bych to chtěl vyřešit takto. Myslím, že podobný skript se bude hodit ještě někdy. Čeština má přes 300.000 slov.
|
||
abc Profil |
#6 · Zasláno: 16. 7. 2013, 22:55:44
Ještě jednou zdůrazňuji, že na toto se soubory absolutně nehodí.
Jinak hotový skript zatím neposkytnu, ale ve stručnosti: 1) načtete soubor do paměti - file_get_contents - první problém - nemusí se celý vejít do paměti - druhý problém - načítate vždy celý soubor, jelikož nevíte, kde se v něm překlad nachází - třetí problém soubor se do paměti musí načítat vždy 2) a potom, aby to nebylo tak příšerně pomalé si najdete slovo, které chcete překládat strops 3) dál najdete první oddělovač za nalezeným hledaným slovem 4) dál najdete další enter (\n) 5) a vypíšete vše mezi 3) a 4) |
||
JanSvabikCZ Profil |
#7 · Zasláno: 16. 7. 2013, 23:00:00 · Upravil/a: JanSvabikCZ
Aha, tak o strops jsem ještě neslyšel, neboť se PHP zatím jen učím, ale zatím tedy děkuji. Podívám se, co s tím mohu udělat... Ještě bych to mohl vyřešit, že každé písmeno bude mít svůj soubor - a.txt, b.txt, c.txt,.....
Asi jste myslel strpos |
||
abc Profil |
#8 · Zasláno: 16. 7. 2013, 23:05:03
„Ještě bych to mohl vyřešit, že každé písmeno bude mít svůj soubor - a.txt, b.txt, c.txt,.....“
To je jen z bláta do louže... Já bych takový překladač používat nechtěl, jelikož bude opravdu hodně pomalý.. Databáze jsou k tomuto stvořeny... Pokud si nevíte rady s databázemi, doporučuji nastudovat články 34 - 49 na linuxsoftu |
||
JanSvabikCZ Profil |
#9 · Zasláno: 16. 7. 2013, 23:06:40 · Upravil/a: JanSvabikCZ
Abych pravdu řekl, v databázích nedělám (zatím), protože to absolutně nechápu. Četl jsem všechno možné, zkoušel, ale nikdy mi nic nefungovalo...
Přečtu si, ok :) Ještě teď :D |
||
Giga Profil |
#10 · Zasláno: 17. 7. 2013, 11:32:22
Na skúšku by som doporučil vyskúšať prehľadávanie súboru, vktorom bude povedzme
5000 slov. Potom bude jasnejšie, či súbory, alebo databáza. :) |
||
Joker Profil |
#11 · Zasláno: 17. 7. 2013, 12:01:13
JanSvabikCZ:
„Databáze je k dispozici, ale nerad to přes ně dělám.“ To je teda argument :-) Představte si třeba stěhováky, kteří stěhují jen z přízemí do přízemí, protože neradi chodí do schodů. K tomu překladu, je to překlad jen v jednom směru z nějakého pevně daného jazyka do jiného/jiných? Jestli ano, šlo by to docela jednoduše, vyrobit si na to pole: $preklad["en"]["ahoj"] = "hello"; $preklad["en"]["světe"] = "word"; Ale samozřejmě to funguje jen dokud máte pevný výchozí jazyk, ve kterém jsou zadané klíče toho pole. Kdyby byly třeba tři jazyky a mělo to být z libovolného do libovolného, půjde to řekl bych docela jednoduše přes databázovou tabulku: Id slova | kód jazyka | slovo A data třeba: 1 | "en" | "Hello" 1 | "cs" | "Ahoj" |
||
JanSvabikCZ Profil |
#12 · Zasláno: 17. 7. 2013, 23:25:37
S databázemi jsem se tedy naučil pracovat... Všem děkuji za rady :) Ano, poslední návrh se mi zdá velmi dobrý :) Jen mi ještě, prosím, poraďte, co mám udělat, když záznam není v databázi (například když se někdo splete a napíše místo "podívat" třeba "posívat"???
|
||
JanSvabikCZ Profil |
#13 · Zasláno: 18. 7. 2013, 00:39:48
Ale ten PRIMARY KEY jsem zatím nepochopil...
|
||
jenikkozak Profil |
#14 · Zasláno: 18. 7. 2013, 07:53:28
JanSvabikCZ:
„S databázemi jsem se tedy naučil pracovat...“ Pak jsi génius, že ti na naučení stačil jediný den. Je vidět, že tvá reklama: „Nejkvalitnější internetové a grafické služby“ skutečně není klamavá. „Ale ten PRIMARY KEY jsem zatím nepochopil...“ Tvé „pokroky“ nás zas tak moc nezajímají. |
||
JanSvabikCZ Profil |
#15 · Zasláno: 18. 7. 2013, 11:28:19
Další takovej... Je tam napsáno, že se vše PŘIPRAVUJE!
Když si s něčím v databázi nebudu vědět rady, tak si o tom někde přečtu... Co takhle mluvit k tématu...? |
||
Časová prodleva: 11 let
|
0