Autor Zpráva
Han
Profil
Zdravím, stojím pred problémom, ktorý neviem vyriešiť.. Mám textový súbor so správami zo skype, v takomto formáte:

[23. 9. 2012 19:12:45] <meno>: teyxttt
[23. 9. 2012 19:12:46] <meno>: teyxttt das
[23. 9. 2012 19:12:47] <meno>: teyx tttdasda
[23. 9. 2012 19:13:37] <meno2>: omogf ama
[23. 9. 2012 19:15:02] <meno>: text text text

a tak ďalej..
A potreboval by som načítať všetky slová, ktoré povedala osoba s menom "meno2", ktoré majú dĺžku napr. od 5-35 znakov, bez diakritiky, a aby to bolo case-sensitive, teda ak mám "auto" a "Auto" chcem aby mi zapísalo obidva osobitne do DB.
Poradí mi niekto, prosím, ako mám na takéto niečo ísť? Samozrejme, nežiadam o celý kód alebo niečo podobné, len "nakopnutie" akým spôsobom na to mám ísť :) Ďakujem
candiess
Profil
Han:
Nejlépe přes PHP skript: Načíst si soubor -> Regulárním výrazem si vytáhnout veškerá data, která potřebujete -> SQL příkazem vložit do databáze
Han
Profil
Na to som prišiel :D ale.. neviem nejako prísť na ten regulár :(
tiso
Profil
Tento regulárny výraz vráti pole s celým textom od osoby so zadaným menom, ktoré obsahujú slová s danou dĺžkou:
$user = 'meno2';
$pattern = '/^.+<' . preg_quote($user, '/') . '>:\s+(.*(?:\w{5,35}).*?)\s+$/m';
Teraz ešte musíš prejsť to pole, odstrániť diakritiku, rozdeliť ho na jednotlivé slová, vybrať len tie, ktoré majú daný počet písmen, vyhodiť duplicity a máš výsledok.
Tori
Profil
Han:
Vyhazování duplicit se dá ještě udělat i na úrovni databáze - nastavit u toho sloupce takové porovnávání, které rozlišuje diakritiku i velikost písmen, a přidat unikátní index. Záznamy vkládat jako INSERT IGNORE.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: