Autor Zpráva
ctvrtek
Profil *
Ahoj mam udelanej takovej mensi sopik a chtel bych si udelat nejaky RSS kde bude vypsany zbozi treba pro zbozi.cz akorat nvm jakym principem to mam udelat. Nejspis musim vygenerovat RSS se vsema zbozi co tam je nejaky aktualni nacitani je blbost ale tim padem pak nvm jak to tam aktualizovat kdyz nejakym scriptem vygeneruju obsah pro to RSS tak casem to nebude aktualni. Pouziti cronu mne prijde taky takovy neaktualni ale zas kdyz se upravi nebo smaze nejaky zbozi v adminu tak mne to prijde zas slozity. Takze je nejaky jiny reseni nebo mam pouzit cron a generovat RSS treba jednou denne aktualizovat bude taky tezsi takze treba delat pokazdy novy?
Aesir
Profil
ctvrtek:
Při malém počtu výrobku (řádově desítky) to můžete klidně generovat dynamicky při každém requestu. Při větším počtu je obvyklé řešení kešování do statického souboru. Je už jedno jestli tu keš budete generovat cronem např. jednou denně nebo např. kontrolou stáří statického souboru a případným přegenerováním apod.
bohyn
Profil
ctvrtek
Ja to resim kontrolou stari cache souboru a pokud chci aktualizovat hned tak smazu cache a pri dalsim pozadavku se vytvori novy. Nejak takhle:
if(is_file("rss.xml") && filemtime("rss.xml") > time() - 7200) {
  $f = fopen("rss.xml", "r");
  fpassthru($f);
  fclose($f);

  exit;
}

// vygenerovat novy RSS a ulozit do $output

echo $output;

$f = fopen("rss.xml", "w");
if($f) {
  fwrite($f, $output);
  fclose($f);
}
ctvrtek
Profil *
hmm takze cronem napr jednou denne spustim script kterej mne vytvori novej rss.xml soubor? nejak to s tim kesovanim nechapu :)
bohyn
Profil
ctvrtek
mas PHP script rss.php a na nej odkazujes. Script pri kazdem pozadavku zkontroluje stari vygenerovaneho obsahu ulozeneho v souboru rss.xml (v uvedenem pripade 7200 sekund = 2 hodiny) a pokud je mladsi nez 2 hodiny tak posle RSS co ma ulozene v souboru. Pokud soubor neexistuje nebo je starsi nez 2 hodiny tak se RSS vytvori znova a ulozi do souboru. Maximalni stari si muzes nastavit podle cetnosti aktualizaci popripade pri zmene zbozi smazat soubor rss.xml a vynutit tak aktualizaci.
ctvrtek
Profil *
hmm ale u toho teoreticky vubec nemusi byt to kesovani proste napr jednou denne vytvoris novy rss :)
bohyn
Profil
ctvrtek
Ano muzes to udelat i pres cron, muzes to udelat i tak ze pri aktualizaci zbozi vytvoris znovu RSS nebo smazes cache. Zalezi na konkretnim pouziti a jak casto se informace v RSS aktualizuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0