Autor | Zpráva | ||
---|---|---|---|
MarketkaSladilova Profil * |
#1 · Zasláno: 6. 6. 2012, 16:10:11
Facebook.com nabízí export profilu a já si i vygenerovala tzv. messages.html, kde je vypis toho co jsem si psala:
<div class="message reply"> <span class="profile fn">Rakeťák</span> <abbr class="time published" title="2012-05-22T16:43:24+0000">22. květen 2012 v 18:43</span> <div class="msgbody"> Zase další text </div> </div> <div class="message reply"> <span class="profile fn">Moje jméno</span> <abbr class="time published" title="2012-05-22T16:43:27+0000">22. květen 2012 v 18:43</span> <div class="msgbody"> Text text text </div> </div> Asi přes FILE bych načetla messages.html a nyní bych potřebovala pomoci. Potřebovala bych načíst uživatelské jméno z toho PROFILE FN, dále datum a MSGBODY .. tedy ten text. Vím, že to jde přes regulérní výrazy, ale nemám ponětí jak to udělat. |
||
Taps Profil |
#2 · Zasláno: 6. 6. 2012, 16:13:20
MarketkaSladilova:
<? $vstup=file_get_contents("zdrojovysoubor.html"); preg_match('~<span class="profile fn">(.+?)</span>~s', $vstup, $vystup); print_r($vystup); ?> |
||
MarketkaSladilova Profil * |
#3 · Zasláno: 6. 6. 2012, 16:19:46
Moc děkuji, ale nefunguje to jak by mělo. Vstup načtu v pořádku, ale bohužel profile fn ... se načte z celého message.html jen 2x.
|
||
Taps Profil |
#4 · Zasláno: 6. 6. 2012, 16:36:15
MarketkaSladilova:
zkus použít místo preg_match funkci preg_match_all
|
||
MarketkaSladilova Profil * |
#5 · Zasláno: 6. 6. 2012, 16:40:34
Funguje, moc děkuji. Nyní si vypíši uživatelské jména, ale jak prosím vypíši datum a daný text ... z message? Zde ten regulerní výraz bude jiný, zvláště u datumu, které se tam mění a u message ... tam jsou zase použity odentrované řádky.
Zvláště bych to potřebovala vypsat jako: NICK: ...... DATUM: .... TEXT: ..... ------------------ NICK: ...... DATUM: .... TEXT: ..... ------------------ Moc Vám děkuji. |
||
Taps Profil |
MarketkaSladilova:
u message bude podobný styl zápisu preg_match('~<div class="msgbody">(.+?)</div>~s', $vstup, $vystup); |
||
MarketkaSladilova Profil * |
#7 · Zasláno: 6. 6. 2012, 18:12:46
Zjistila jsem problém ... já potřebuji vypsat pouze tu hodnotu z (.+?) a ne celou: <span class="profile fn">Moje jméno</span>
|
||
Keeehi Profil |
bude to další prvek v poli, takže ne [0] ale [1]
|
||
MarketkaSladilova Profil * |
#9 · Zasláno: 6. 6. 2012, 20:53:51
A jak vypíši to datum (tučně zvýrazněné):
<abbr class="time published" title="2012-05-22T16:43:24+0000">22. květen 2012 v 18:43</span> |
||
Taps Profil |
#10 · Zasláno: 6. 6. 2012, 20:59:37
MarketkaSladilova:
zkus něco takového preg_match('~<abbr class="time published" title="(.+?)">(.+?)</span>~s', $vstup, $vystup); |
||
Keeehi Profil |
#11 · Zasláno: 6. 6. 2012, 21:16:41
Tohle vycucávání není nic složitého. Musíš si najít dostatečně unikátní řetězec před a za textem, který chceš získat. Mezi tyto řetězce se vloží
(.*?) a je hotovo. Pro 98% případů tento postup stačí.
|
||
Časová prodleva: 11 let
|
0