Autor | Zpráva | ||
---|---|---|---|
pixman Profil |
#1 · Zasláno: 13. 10. 2011, 19:29:12
Zdravím,
po přechodu mého webhostingového serveru na PHP verzi 5.2.17 a administračního rozhraní Plesk na verzi 9.5.4 mi přestalo fungovat stahování kurzu z Komerční banky. Kurz stahuju následujícím PHP scriptem: <?php $url="http://trading.kb.cz/ibweb/downloadExchangeRate.do?d=13&m=10&y=2011&seqNumber=3"; $save_path="kurz.xls"; if (copy($url, $save_path)) echo "OK"; else echo "ERROR"; ?> Na localhostu mi script funguje naprosto bez problémů. Když jsem psal na podporu mého webhostingu, tak jsem dostal následující odpověď: "Na serveru doslo k aktualizaci verze PHP, ktera se nyni chova pri praci s url wrappery jinak nez puvodni - dochazi k uprave nekterych znaku v URL na html entity - viz. chybove hlaseni: [type] => 2 [message] => copy() [function.copy]: Unable to access http://trading.kb.cz/ibweb/downloadExchangeRate.do?d=13&m=10&y=2011&seqNumber=3 Bohuzel nejsme programatori, nastudujte si prosim dokumentaci php." Já jsem bohužel nenašel nic, co by mi pomohlo. Děkuji za každou radu. |
||
meris Profil |
#2 · Zasláno: 13. 10. 2011, 20:44:36
ahoj,
podle hlášky se jedná o to že znak & se převede na html entitu, tedy & a pak se jedná o nesprávně zadanou url adresu. Aby jsi to opravil tak musíš nastavit url escapování. zkus místo té cesty co tam máš uvedenou zkusit toto: http%3A%2F%2Ftrading.kb.cz%2Fibweb%2FdownloadExchangeRate.do%3Fd%3D13%26m%3D10%26y%3D2011%26seqNumber%3D3 více najdeš třeba zde nebo zde(nástroj na escapování url) |
||
pixman Profil |
#3 · Zasláno: 13. 10. 2011, 21:28:46
meris:
Bohužel mi to pořád nefunguje. Pokud nahradím odkaz následujícím vygenerovaným odkazem, tak to nefunguje uz ani na localhostu. http%3A%2F%2Ftrading.kb.cz%2Fibweb%2FdownloadExchangeRate.do%3Fd%3D13%26m%3D10%26y%3D2011%26seqNumber%3D3 Nebyl by ještě nějaký jiný nápad? Díky moc. |
||
meris Profil |
#4 · Zasláno: 13. 10. 2011, 22:17:41
pixman:
je na tom serveru nastavení chyb? asi by se hodilo víc informací o té chybě. Jinou možností je vyzkoušet jiný způsob stahování, tady je jich celkem dost: stackoverflow - cURL by mohlo fungovat. Otázka je jakým způsobem parsují ta URL, s touto chybou jsem se ještě nesetkal |
||
Davex Profil |
#5 · Zasláno: 13. 10. 2011, 22:27:00
pixman:
Jen pro kontrolu - stažení libovolného jiného souboru, který nemá v URL parametry ti funguje? Dejme tomu třeba $url = 'http://www.jakpsatweb.cz/'; |
||
pixman Profil |
#6 · Zasláno: 13. 10. 2011, 23:23:48
Davex:
Zkoušel jsem, ale nefunguje to ani bez prametrů. Funkce copy() fungovala pouze když jsem namísto URL napsal relativní adresu. meris: Více informací o chybě bohužel nemám. Nakonec se mi to podařilo rozchodit pomocí file_put_contents, akorát to nepřepisuje původní soubor. <?php unlink("kurz.xls"); $url="http://trading.kb.cz/ibweb/downloadExchangeRate.do?d=13&m=10&y=2011&seqNumber=3"; $save_path="kurz.xls"; file_put_contents($save_path, file_get_contents($url)); ?> Díky moc za rady |
||
Kcko Profil |
#7 · Zasláno: 14. 10. 2011, 00:37:08
Z php manuálu
>> If filename does not exist, the file is created. Otherwise, the existing file is overwritten, unless the FILE_APPEND flag is set. |
||
filipkohl Profil * |
#8 · Zasláno: 14. 10. 2011, 04:49:13
stačí použít funkci
unlink($cesta_k_souboru); |
||
Časová prodleva: 13 let
|
0