Autor Zpráva
MarketkaSladilova
Profil *
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
MarketkaSladilova:
<?
$vstup=file_get_contents("zdrojovysoubor.html");
preg_match('~<span class="profile fn">(.+?)</span>~s', $vstup, $vystup);

print_r($vystup);
?>
MarketkaSladilova
Profil *
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
MarketkaSladilova:
zkus použít místo preg_match funkci preg_match_all
MarketkaSladilova
Profil *
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 *
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 *
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
MarketkaSladilova:
zkus něco takového
preg_match('~<abbr class="time published" title="(.+?)">(.+?)</span>~s', $vstup, $vystup);
a pak si z pole vytáhni to co potřebuješ
Keeehi
Profil
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čí.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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