Zadejte hledaný výraz...

Curl nenačte (neuloží) XML, proč?

Snažím se stáhnout XML od pepa.cz, ale bohužel soubor je vždy prázdný. Zřejmě tam pepa.cz má nějaké zabezpečení, ikdyž pochybuji o tom, protože přes web prohlížeč XML bezproblému zobrazím. Script ale XML nevidí - neuloží = 0kB
$url = 'http://www.pepa.cz/export.xml';
$url = $xml_import;
$header=array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: cs,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: gzip,deflate',
'Accept-Charset: ISO-8859-1,windows-1250,utf-8;q=0.7,*;q=0.7',
'Keep-Alive: 115',
'Connection: keep-alive',);
$ch = curl_init($firma);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
$xml_soubor = curl_exec($ch);
curl_close($ch);
file_put_contents("xml/pepa-cz.xml", $xml_soubor, LOCK_EX);
18. 12. 2013 10:25:57
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977619
cURL debug 101:
Před curl_exec() nastavte
Po curl_exec() vypište výsledek a
18. 12. 2013 10:33:15
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977618
Warning: curl_error(): 1 is not a valid cURL handle resource in /data/web/example/test.php on line 21
bool(false)
18. 12. 2013 10:36:02
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977617
Předáváte curl_init() správnou URL?
18. 12. 2013 10:41:15
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977616
Petyk
verified
rating uzivatele
(3 hodnocení)
18. 12. 2013 10:42:50
zkus $ch = curl_init('http://www.pepa.cz/export.xml');
18. 12. 2013 10:42:50
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977615
Chyba, omlouvám se. Nyní je to již OK, avšak výsledek představuje zkomolené znaky a ne XML. Vkládám proto screen, protože použité znaky nejdou kopírovat zde do formuláře.
9508
18. 12. 2013 10:47:31
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977614
qwertr
verified
rating uzivatele
(7 hodnocení)
18. 12. 2013 10:54:55
Nie je to nahodou zbalene gzip-om ? Skus to niekde rozbalit to co stiahnes.
18. 12. 2013 10:54:55
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977613
Jak píše qwertr, je to komprimované gzipem, viz poslední řádek vrácené hlavičky
Content-Encoding: gzip
Odstraňte z hlaviček řádek
A místo toho nastavte
Vysvětlení zde
http://www.php.net/manual/en/function.curl-setopt.php
nebo zde
http://stackoverflow.com/questions/13017292/gzip-deflate-with-curlphp-web-service-issue
18. 12. 2013 11:00:48
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977612
Mockrát děkuji. Dost jste pomohli.
Když dám script do foreach a nechám tím projet více URL adres, tak mě to vypíše chybu: string(25) "Couldn't resolve host ' '"
18. 12. 2013 11:11:58
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977611
Vytiskněte si to URL, u kterého to píše. Najděte si chybovou hlášku na internetu.
To jsou základy debugování.
18. 12. 2013 11:25:21
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977610
Chyba je v tom, že když do curl_init vložím string, tak mě to udělá chybu, ale když tam vložím natvrdo URL, tak XML se načte. Přitom URL vkládané přes string je naprosto stejné jako to vkládané natvrdo (žádná mezera, HTML, odřádkování ...)
18. 12. 2013 11:44:53
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977609
Pošlete ukázku.
18. 12. 2013 12:47:02
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977608
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
18. 12. 2013 12:54:12
Nějak nechápu, proč si komplikovat život tam kde to není nutné. tohle funguje?
file_put_contents("./xml/pepa-cz.xml", file_get_contents('http://www.pepa.cz/export.xml'));
18. 12. 2013 12:54:12
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977607
Michal Maté
verified
rating uzivatele
(1 hodnocení)
18. 12. 2013 22:23:19
je to v těch uvozovkach.
Spravny a odzkoušený je toto:
$url = 'http://www.pepa.cz/export.xml';
$path = 'export_pepa.xml';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
file_put_contents($path, $data);
18. 12. 2013 22:23:19
https://webtrh.cz/diskuse/curl-nenacte-neulozi-xml-proc#reply977606
Pro odpověď se přihlašte.
Přihlásit