Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.
V 1. části jsme si ukázali, jak lze přinutit k automatickému obnovení online přenosy, které je normálně nemají. Teď si předvedeme, jak dostat do titulku stránky aktuální skóre.
Aby nám stránka v titulku ukázala, jaký je aktuální stav, to už s pouhým HTML nepořídíme. Zde je potřeba:
Přitom není nutné, aby serverový skript odeslal uživateli celý kód. Původní stránka s online se může dále načítat pomocí iframe.
První úkol je snadný. Máme-li k dispozici PHP aspoň verze 4.3, můžeme použít funkci file_get_contents, která do proměnné načte HTML kód stránky s online přenosem.
K vyoperování týmů a skóre je potřeba vědět, kde tato informace bývá v kódu. V případě fotbalových přenosů iDNES jsou názvy týmů obklopeny tímto:
<td class="tac m" width="33%"><a href="nejaky odkaz">název týmu</a></td>
Příslušný regulární výraz tedy bude mít syntaxi:
|<td class="tac m" width="33%"><a href=[^>]*>([^<]*)<|
Obdobně skóre najdeme zde:
<td class="v">číslo</td>
a regulární výraz proto bude
|<td class="v">([^<]*)<|
Pomocí funkce preg_match_all se zjistí názvy obou týmů i čísla vyjadřující skóre (u skóre jsou odpovídající řetězce tři, jedním z nich je dvojtečka). A do titulku si pak už můžeme zapsat cokoliv. Třeba
echo "$tym_d $skore_d:$skore_h $tym_h";
kde $tym_d, $tym_h jsou názvy týmů (případně zkrácené) a $skore_d, $skore_h počty vstřelených branek. Titulek pak může vypadat takto.
Zde je kód celé stránky psaný v PHP (textový soubor). Funguje pro fotbalové online na iDNES, dá se ale modifikovat i pro jiné přenosy.
Vložit vlastní komentář – Návrat k článku – RSS komentářů tohoto článku
[1] 20. 4. 2006, 15:41 – Jakub Vrána (Odkaz)
Nedalo by se to podobně snadno řešit i klientským JavaScriptem?
[2] 21. 4. 2006, 08:52 – Honza Hučín (Odkaz)
Ad [1]: Možná ano, o tom jsem nepřemýšlel. Vida, to by ušetřilo načítání pro serverový skript.
Umí ale Javascript analyzovat zdrojový kód? Pokud by ty údaje byly dohledatelné v nějakém DIVu s ID, použilo by se jednoduše getelementbyid().innerHTML, ale takhle nevím...
[3] 27. 4. 2006, 09:37 – Michal Berg (Odkaz)
Díky za pochvalu našich online přenosů v článku http://suplik.petnik.cz/co-ma-mit-sportovni-p
Pár
A abych vás navnadil, od nové sezóny se u nás budete setkávat i s fotbalovými přenosy a pokud všechno vyjde, budete moci na našich online přenosech sledovat už i fotbalové MS. Navíc chystáme výrazné technologické vylepšení přenosů, které je jak doufáme ještě vylepší.
A s tím tvrzením, že iDnes je největší poskytovatel online přenosů u nás bych byl také opatrný, přece jen 5 ligových souěží, play-off včetně mládežnických lig a všechny zápasy mezinárodních hokejových tunajů dají za rok slušnou porci zápasů :)
K tomuto článku není možné vkládat komentáře.
© Honza Hučín 2004–6
Šuplík běží na PIPNI.CZ. Díky!
8. 8. 16:48 | Pepa
7. 8. 21:26 | Honza Hučín
7. 8. 21:02 | Honza
6. 8. 14:29 | Pepa
3. 8. 18:29 | Honza
*1967, absolvent MFF UK v Praze (1991)
statistik, analytik, programátor, učitel, hudebník