Televizní program

/ Blog / PHP / Televizní program

Publikováno v sekci PHP v 15. 1. 2008 - 22:30

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("http://www.iprogram.cz/?TV=$kanal")) { 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í :-)

Kategorie

  • Osobní názory - 1x
  • PHP - 9x
  • MYSQL - 4x
  • CSS - 7x
  • jQuery - 3x
  • Sociální síť - 1x
  • Nette - 5x
  • Tipy & triky - 3x
  • Twitter Bootstrap - 1x
  • Týdenní tipy a novinky - 4x
  • SCSS - 1x
  • GIT - 1x
  • Gulp - 1x

  • Komentáře (10x)

    Neni mi jasné jak to rozchodit!!!
    Můžete napsat podrobnějiší postup jak na to.

    Ten kód se má vložit do nějakého souboru?
    Podrobnější postup snad není třeba ne? Je to v sekci PHP, tak je myslim, zrejme, ze si funkci ulozis do PHP souboru a zavolas ji s prislusnym parametrem.
    Uložil jsem si vrchní kód do souboru tvProgram.php a kód echo tvProgram(\\\"NOVA\\\"); Uložil jsem si vrchní kód do souboru tvProgram.php a kód echo tvProgram(\\\"NOVA\\\"); jsem vložil do php stránky na místo, kde chci tv program zobrazit - nejde to. V čem dělám chybu!
    Děkuji za pomoc, nerozumím PHP!
    jsem vložil do php stránky na místo, kde chci tv program zobrazit - nejde to. V čem dělám chbu!

    Děkuji za pomoc, nerozumím PHP!
    [3] Hally Co ti na to mam rict chlape :-), snad jen nauc se zaklady PHP
    Už jsem na to přišel :o)
    Jen bych se chtěl zeptat jak, v tomto případě, překódovat data do UTF-8 pomocí iconv!
    [5] Hally Mno, pokud mas stranku ulozenou v UTF8 tak by to melo jit v pohode.

    Ja to zkousel a nemam s tim zadne problemy.
    [5] Hally Jinak by melo stacit toto
    [code]
    return iconv('WINDOWS-1250', 'UTF-8' $t);
    [/code]
    V čem může být chyba?

    Warning: file_get_contents() [function.file-get-contents.php]: URL file-access is disabled in the server configuration in ....../www/tvprogram/tvprogram.php on line 4

    Warning: file_get_contents(http://www.iprogram.cz/?TV=NOVA) [function.file-get-contents.php]: failed to open stream: no suitable wrapper could be found in ....../www/tvprogram/tvprogram.php on line 4
    Nelze načíst požadovaný kanál - NOVA
    [8] Raife Budou vypnute wrappery. Muzes zkusit knihovnu CURL -> http://cz.php.net/manual/cs/ref.curl.php

    Vložit nový komentář


    • na jiné komentáře odkazujte pomocí odkazu reagovat
    • vaše IP adresa bude zaznamenána
    • používají se gravatary
    • můžeme si tykat
    • HTML tagy vypnuty. PHP kód se také neprovede. Pokud potřebuju přiložit ukázku vašeho kódu, použijete službu pastebin
    • vulgární, rasistické či jinak nepřípustné komentáře budou smazány