| 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: 13 let
|
|||
0