Plánovač úloh a cURL na Windows 7
Dostal jsem se do situace, kdy potřebuji sledovat změny stránky s informacemi o stavu zakázky. Web pochopitelně neposkytuje žádné notifikace a musím si informace obstarat sám.
Sledovat změnu každých pár minut ručně je nesmysl, chce to automatizovat proces. Rozhodl jsem se pro PHP skript stojící na cURL, které přečte stránku a obsah zapíše do souboru s timestampem v názvu. Samotný skript stačí v podstatě okopírovat z dokumentace PHP a pozměnit pár údajů: adresu, kterou chci číst a soubor, do kterého chci zapisovat.
dl("php_curl.dll");
$ch = curl_init("http://example.com");
$fp = fopen('C:\Users\Public\Documents\www\folder/' . time() . ".html", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch); fclose($fp);
Dále je ptořeba zajistit spouštění skriptu. Na Windowsech se dají nainstalovat obdoby cronu nebo použít Plánovač úloh.
V Plánovači vytvoříme novou úlohu. Pro fungování je třeba zadat název, četnost spouštění a spouštěný program. Tím je php.exe (pozor na url s mezerami, ty je třeba uzavřít do uvozovek), jako parametr zadáme adresu spouštěného skriptu. Dále je třeba zajistit zápis. Jednou variantou je nastavit pole "Spustit v" na url složky, kde se nalézá skript, nebo nastavit adresu souboru do, kterého zapisujeme absolutně.
Zbývá už jen uložit úlohu, zkusit jí jednorázově pustit a je hotovo.