Diskuze: Anti-spam pro API (ČNB)
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Moc nechapu dotaz.
CNB nabizi urcite kurz. listek jako csv. To jsem kdysi pouzil. Zavolal jsem
kurz-listek.,php. To si zkontrolovalo daum ulozeneno souboru. A kdyz byl moc
stary, stahlo novy. Kdyz byl akorat, jen vratil data. Stahoval jsem to 3x za
den.
Zkratka si to ulozis k sobe a kontrolujes na souboru datum.
php.net/file_get_contents
php.net/file_put_contents
php.net/filemtime
php.net/file_exists
Ano, máš pravdu, ale potom nabízí XMLko kde máš i get parameter na datum, takže se můžeš koukat "do historie" kurzu. Jako já mohu udělat že se nebude moct zvolit datum a půjde to jen na ten daný den a dám tam classic cache, ale zajímalo by mě i řešení s tím aby se ten datum dal určovat, ale aby tam byl ten antispam který zabrání random házení datumu pro to aby server byl zablokován.
například: https://www.cnb.cz/…nni_kurz.xml?…
Jak chces omezit datum, konkretne? Nebo jako chces moznosti?
https://www.php.net/…time.sub.php
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D')); // odecti interval 10 dni
echo $date->format('Y-m-d') . "\n";
//$today = new DateTime();
?>
Uzivatel zada 2014-2-13
B = new DateTime('2000-01-20'); // prevedes to na timestamp
A = new DateTime();
if (A - 10 dni < B && B < A + 10 dni) {zobraz tvuj soubor, pokud existuje, pokud neexistuje, stahni (ale nastav pro nej kesovani)}
Jmeno souboru formatovane treba po 8h, to by mohlo byt nejak takto:
$B = $B->format('Y-m-d-H');
list($y, $m, $d, $h) = explode('-', $B);
$h = floor($h/8) * 8;
$suffix = "$y-$m-$d-$h-00-00";
Udělám to tak, že dnešek si budu cachovat třeba po tich 8 hodinach a minule datumy treba po dni protoze uz se menit nebudou. Dekuji za pomoc
Zobrazeno 5 zpráv z 5.