RJWEBDESIGN - tvorba webových prezentací

Novinky

22.04.2008
Portál Španělský fotbal byl spuštěn, zatím probíhá testování více

06.03.2008
Pracuji na fotbalovém portálu zabývající se španělským fotbalem

12.01.2008
Dokončen fotbalový rezervační systém Profi Football více

08.01.2008
Spuštění modulu Eshopu pro firmu AZ-SportCzech více

04.01.2008
Dokončena prezentace firmy STRAIGHT CONSULT více


Reklama

Španělský fotbal - spanelskyfotbal.cz

Cizí krmivo


Něco málo o mé osobě

Je mi 26 let, bydlím v hlavním městě ČR. Webdesignem a programováním se zabývám již několik let ... více


Snažím se poradit


Sport, sleduji, hraji


Hlavní Logo

Poslední komentáře

  • nechapem -

    nechapem

  • RJ -

    [131]

    Jak zkopirovat? Vse podstatne mate v clanku, deklaraci funkce a jeji pouziti. Nic vic v tom neni

  • Karel Kaleta -

    Dobrý den, potřeboval bych se zeptat, jestli by jste mi nemohl zkopírovat soubor uložený na vaší adrese http://www.rjwebdesign.net/…ss/index.php a poíslat mejlem. Nevím jak rozjet vaši RSS čtečku a s tímhle to mám jednodušší. Díky za odpověď.

  • RJ -

    [129] To bych nedelal, kdyby zmenili treba razeni men a napr. EURO by se z radku 5 presunulo na radek 8 tak by ti to nevyslo .. zkus to pres to pole, bude to univerzalnejsi

  • kuba -

    [128]jo dík, už jsem to vyřešil, sice ne přes pole, ale trošku kostrbatě přes číslo řádku měny

Statistika

  • Článků celkem: 12
  • Komentářů celkem: 27

Blogspot » PHP » Ukazujeme fotbalové tabulky

Ukazujeme fotbalové tabulky

Čtvrtek, 12 .Června 2008, 01:12, prečteno 204x

Na svém webu potřebuji zobrazovat tabulky ze současného mistrovství evropy ve fotbale ( EURO 2008). Ručně se mi nic aktualizovat nechce, a vkládat tabulky z jiného serveru např. pres I-frame už vůbec ne. Zvolil jsem proto cestu nejmenšího odporu - sice beru tabulky z jiného serveru, ale mohu si s nimi dělat chci ...

Vybral jsem si server SPORT, jelikož je bez výpadků, aktualizuje ihned po skončení zápasu a jeho kód je přehledný a snadný k parsování

/**
 * showSoccerTable()
 * 
 * Funkce umoznuje parsovat fotbalove tabulky ze serveru SPORT
 * 
 * @date 12-06-2008
 * @author Roman Janko <admin@rjwebdesign.net>     
 * @param string $url  nacitame konkretni tabulku ze serveru SPORT
 * @param integer $ttl  nastavujeme dobu expirace stahovani, defaultne 3600 (1 hodina)
 * @return string
 *  
 */
function showSoccerTable($url = '', $ttl = 3600)
{
    // vychozi priznak
    $cached = true;
    
    // nenalezen soubor nebo probehl expiraci
    if (!is_file("./cache/" . md5($url)) || time() -  filemtime("./cache/" . md5($url)) > $ttl)
        $cached = false;
            
    // neni kesovano
    if (!$cached)
    {   
        // debug
        //echo "znovu parsujeme tabulku - " . date('d.m.Y H:i:s');
        
        $f        = file_get_contents($url);
        if (!$f)
        {
            echo 'Nelze načíst - ' . $url ;
            return;
        }
        
        $table    = preg_match("~<table id="teamTable">(.+?)</table>~s", $f, $out);
        $ourTable = '<table border="1">' . strip_tags($out[1], "<td>,<tr>,<table>,<th>") . '</table>';
    
        // ulozime
        file_put_contents("./cache/".md5($url), $ourTable);
    }

        // nacteme tabulku
        $table = file_get_contents("./cache/".md5($url));
        
        return $table;
    
}
// Použití
echo showSoccerTable('http://fotbal.sport.cz/tabulka?sectionId=708&competitionId=3');

Tato funkce je opět velmi jednoduchá ( jiné ani nepublikuji, protože nemám čas se rozepisovat :) a ani nechci vyvolávat nějaký flame se zkušenějšími programátory). Takže ve zkratce co dělá

  • Vyzobne tabulku dle zadané URL ( musíte se podívat jakou tabulku chcete vyzobnout a poté její url předat funkci)
  • Uloží výstup do souboru a to proto, abychom nemuseli neustále při každém obnovení stránky tabulku stahovat, nastavíme TTL ( doba cache souboru, tj. jak dlouho nám soubor vydrží po zparsovaní do doby než si bude muset znovu sáhnout na server SPORT)
  • Vrátí nám tabulku připravenou k použití (výstupu na obrazovku)
  • POZOR! Důležité je v adresáři, kde budete volat funkci, mít vytvořený adresář cache, aby se Vám měly kam ukládat výstupy. Jinak to nebude fungovat

Pokud si přejete tabulku nastylovat pomocí CSS stylu stačí přidat třídu k níže uvedenému kódu

$ourTable = '<table border="1">'
=>
$ourTable = '<table border="1" class="moje-vlastni-trida">'

Tato funkce fungovala v době vydání článku, pokud autoři serveru SPORT změní HTML výstup, tak asi přestane, uvidíme :)

Hodnocení: Počet hlasů: 6

Komentáře

Žádný komentář

Přidat komentář

Nový vzkaz

© 2005 - 2008 RJWEBDESIGN, všechna práva vyhrazena.
Nabízíme: Tvorba www stránek
Kontakt: telefony +420 777 856 657 | E-mail: admin@rjwebdesign.net
Spolupracujeme: Aria Studio, MXART Partnerské weby: Pesonline.cz, EuroFotbal.cz, SpanelskyFotbal.cz

© 2008 RJWEBDESIGN