Publikováno v sekci PHP v
Nikdej sem nenašel kvalitní RSS kanál pro zobrazení televizního programu. Proto tu mám jednoduchou funkci, která nám to zajistí.
Tato funkce si stáhne z adresy kompletní HTML obsah stránky. Prvním regulárním výrazem zúžíme výběr HTML kódu pouze na tabulkový výpis programů. Druhým si do vícerozměrného pole uložíme jednotlivé řádky tabulky. Poté již stačí projet takto nabyté pole a vrátit si kompletní tabulku, která je již plně připravená k použití.
1: function tvProgram($kanal) { if ($x = file_get_contents("<a href="http://www.iprogram.cz/?TV=$kanal">http://www.iprogram.cz/?TV=$kanal</a>")) { preg_match("~<table class="program">(.+?)~si", $x, $out); preg_match_all("~<tr>(.+?)</tr>~si", $out[1], $out2); $t = "<table border="1">"; foreach ($out2[1] as $line) { $t .= "<tr>" . $line . "</tr>"; } $t .= "</table>"; return $t; } else { return "Nelze načíst požadovaný kanál - $kanal"; } }#### Použití
1: echo tvProgram("NOVA");Skript by se dal rozšířit o kešování HTML výstupu, aby se nemusel parser při každém obnovení naší stranky znovu stahovat data. Ale o tom třeba někdy příště. Já jsem funkci otestoval na několika kanálech (Prima, Nova, CT1 ..) a fungovala bezchybně. Pokud do budoucna změní HTML výstup, bude se to muset přepsat, ale do té doby je to funkční :-)