Autor | Zpráva | ||
---|---|---|---|
Javař Profil * |
#1 · Zasláno: 27. 2. 2010, 18:05:11
Dobrý den,
mám následující kód: <?php //načtení dat z wikipedie a jejich zpracování, funguje při ručním spuštění echo $final[0]; echo $final[1]; echo $final[2]; //přidám k řetězcům aktuální datum for($i=0;$i<3;$i++) { $final[$i]=date("j.n.").$final[$i]; } //vypíše se mi opět správně print_r($final); //odesílám na twitter 3 statuty for($i=0;$i<3;$i++) { $out="POST http://twitter.com/statuses/update.json HTTP/1.1\r\n" ."Host: twitter.com\r\n" ."Authorization: Basic ".base64_encode ('username:password')."\r\n" ."Content-type: application/x-www-form-urlencoded\r\n" ."Content-length: ".strlen ("status=$final[$i]")."\r\n" ."Connection: Close\r\n\r\n" ."status=$final[$i]"; $fp = fsockopen ('twitter.com', 80); fwrite ($fp, $out); fclose ($fp); } ?> jestliže tohle dám spouštět přes cron, nevypíše se jednou nic, podruhé pouze ono datum, ručním spuštěním funguje. zkoušel jsem použít OnlineCronJobs.com, to samé. Co dělám špatně? Přístupová práva jsou v pořádku. |
||
Anonymní Profil * |
#2 · Zasláno: 28. 2. 2010, 09:40:43
Koukám, že nic. Nevíte tedy někdo, jak se cron chová k datům získaným skriptem z jiné domény (google, wikipedia). Tady v tom totiž nejspíš bude problém.
|
||
Alphard Profil |
#3 · Zasláno: 28. 2. 2010, 09:54:18
Javař:
„nevypíše se jednou nic, podruhé pouze ono datum“ Loguje vám cron výpisy ze stránek, nebo jak jste to zjistil? V podstatě nevidím důvod, proč by to přes cron nemělo fungovat. Je potřeba najít krok, který selhává. Pokud bývá prázdné už $final, je třeba jít na začátek scriptu a sledovat spolehlivost získávání dat. |
||
Javař Profil * |
#4 · Zasláno: 28. 2. 2010, 10:14:51
Neloguje, zjistil jsem to tak, že na Twitter se mi poslaly statuty pouze s datumem. Získávání dat nefunguje při volání cronem, samostatným spuštěním mi statuty dojdou správně.
|
||
Alphard Profil |
#5 · Zasláno: 28. 2. 2010, 10:27:09
Jakým způsobem získáváte tada? file_get_contents(), curl, ...?
Pro ladění si přidejte několik řádků, které vám budou logovat jednotlivé události, stačí něco jako function l($text, $file = "log") { $filename = "$file.txt"; $text = date("m.d.y H:i:s").$text."\r\n"; file_put_contents($filename, $text, FILE_APPEND); } Zapisujte si návratové hodnoty funkcí, výpisy proměnných apod. Dokud nezjistíte, kde přesně je chyba, tak vám nikdo (zvláště když nevidíme script, kterým data získáváte) neporadí. |
||
Javař Profil * |
#6 · Zasláno: 28. 2. 2010, 10:44:06
Získávám takhle.
$string = simplexml_load_file("http://cs.wikipedia.org/w/api.php?format=xml&action=query&prop=revisions&titles=Praha&rvprop=timestamp|user|comment|content"); $string = (string) $string->query->pages->page->revisions->rev; |
||
Alphard Profil |
#7 · Zasláno: 28. 2. 2010, 10:58:35
Stažení dat podobné struktury se tady řešilo nedávno. Zkuste hned nevolat simplexml_load_file, ale stáhnout nejdříve data na lokální disk a podívat se na případné chyby, viz načtení dat z jiného serveru.
|
||
Časová prodleva: 14 let
|
0