Autor | Zpráva | ||
---|---|---|---|
OldřichSitko Profil * |
#1 · Zasláno: 3. 12. 2013, 18:35:14
Potřeboval bych uložit XML z URL adresy do souboru. Na internetu jsem našel tento script, ale bohužel mě vypisuje chybu :(
Fatal error: Call to a member function save() on a non-object in /data/web/virtuals/22545/virtual/www/domains/ $url = "http://example.com/feed/xml.php"; $fp = fopen ('file.xml', 'w+'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 50); curl_setopt($ch, CURLOPT_FILE, $fp); curl_exec($ch); curl_close($ch); $ch->save('file.xml'); fclose($fp); |
||
Alphard Profil |
#2 · Zasláno: 3. 12. 2013, 18:50:18
Potřebujete ten timeout, nebo by vám stačilo copy()?
|
||
OldřichSitko Profil * |
#3 · Zasláno: 3. 12. 2013, 20:22:54
Je nutné, aby CURL byl zabezpečen kvůli tomu, že URL tam bude. Může se stát, že hosting na dané URL třeba nepojede. Ten timeout ... nevím, možná tam nemusí být. Jde mě o to, abych data uložil na FTP a to pouze tehdy, pokud URL opravdu je OK. Nerad bych uložil prázdné XML atd.
|
||
Chro Profil |
#4 · Zasláno: 3. 12. 2013, 20:27:06
Na tak jednoduchou činnost, jako je prosté uložení dat do souboru, jsou funkce fopen, fwrite, fclose zbytečné, resp. zbytečně komplikovaný zápis. Vymaž je a použij na konci funkci
file_put_contents('file.xml', $ch, LOCK_EX); |
||
OldřichSitko Profil * |
#5 · Zasláno: 3. 12. 2013, 21:11:41
Napsalo mě to chybu :(
Warning: file_put_contents(): 1 is not a valid stream resource in /data/web/virtuals/22545/ $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch); file_put_contents('file.xml', $ch, LOCK_EX); |
||
Chro Profil |
#6 · Zasláno: 3. 12. 2013, 21:24:41
Jo aha, chybí před uložením dat výstup dat z curl exec, takže opravit na
$result = curl_exec($ch); curl_close($ch); file_put_contents('file.xml', $result, LOCK_EX); |
||
Časová prodleva: 10 let
|
0