Autor Zpráva
Javař
Profil *
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 *
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
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 *
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
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 *
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
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.

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: