Zadejte hledaný výraz...

XML parser – prosím kde je co špatně?

Petr Jeník
verified
rating uzivatele
(71 hodnocení)
11. 6. 2012 10:51:08
Zdravim
Ještě včera mi tohle normálně fungovalo
$mesto = $_GET;
$mesto = (StrTr($mesto, " ", "+"));
$jazyk = $_GET;
$URL = "http://www.google.com/ig/api?weather=$mesto&hl=$jazyk&ie=utf-8&oe=utf-8";
$dataInISO = file_get_contents($URL);
$dataInUTF = mb_convert_encoding($dataInISO, "UTF-8", "UTF-8");
$xml = simplexml_load_string($dataInUTF);
$information = $xml->xpath("/xml_api_reply/weather/forecast_information");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");
?>
Počasí
weather
temp_c ?>°C
condition ?>
wind_condition ?>, humidity ?>
weather
day_of_week; ?>: high - 32) * 5/9 - 5; $teplota = round ($teplota,0); echo "$teplota";?> - high - 32) * 5/9 ; $teplota = round ($teplota,0); echo "$teplota";?>°C
day_of_week; ?>: high -5 ?> - high ?>°C
condition ?>
Dnes mi to hází tuto chybu:
Warning: file_get_contents(http://www.google.com/ig/api?weather=praha&hl=cs&ie=utf-8&oe=utf-8) : failed to open stream: HTTP request failed! HTTP/1.0 503 Service Unavailable in /data/web/virtuals/16087/virtual/www/pocasi.php on line 11
Fatal error: Call to a member function xpath() on a non-object in /data/web/virtuals/16087/virtual/www/pocasi.php on line 16
Prosím o radu, kde mám chybu
Zkouším všechno možný a jsem z toho jelen :(
11. 6. 2012 10:51:08
https://webtrh.cz/diskuse/xml-parser-prosim-kde-je-co-spatne#reply773876
Nejspíš blok kvůli moc dotazům, viz http://www.codingforums.com/showthread.php?t=257082.
1) Cachuj odpověď od Google
2) Kontroluj, jestli ti funkce simplexml_load_string() nevrátila false.
3) A vůbec dotazy na externí služby volej z cronu, ne z požadavku na stránku.
Edit 2: Proměnné $mesto a $jazyk by bylo vhodné ošetřit, ať se tam neposílají blbosti. Přinejmenším urlencode() místo toho strtr().
11. 6. 2012 11:15:09
https://webtrh.cz/diskuse/xml-parser-prosim-kde-je-co-spatne#reply773875
Martin
verified
rating uzivatele
(4 hodnocení)
11. 6. 2012 11:15:20
Me to jede, když si za proměnou mesto dosadím:
Tak je podle me problém v tom co předáváš $_GET; ... Ověř si co tam posíláš za hodnoty..
11. 6. 2012 11:15:20
https://webtrh.cz/diskuse/xml-parser-prosim-kde-je-co-spatne#reply773874
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
11. 6. 2012 11:41:09
hmm...
tak v kódu problém není
naprosto shodný script mi na jiném hostingu úplně normálně běží :(
takže jsou 2 varianty:
1 - Něco je špatně u mě na hostingu (wedos)
2 - Google zatrhl načítání jejich XML mému hostingu
co z toho je možný?
---------- Příspěvek doplněn 11.06.2012 v 11:43 ----------
takže asi opravdu banán od Google za moc dotazů :(
musím to nějak vymyslet
díky za radu
11. 6. 2012 11:41:09
https://webtrh.cz/diskuse/xml-parser-prosim-kde-je-co-spatne#reply773873
blok kvůli moc dotazům
Když začneš kód cachovat, Google tě nejspíš odblokuje.
11. 6. 2012 11:43:13
https://webtrh.cz/diskuse/xml-parser-prosim-kde-je-co-spatne#reply773872
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
11. 6. 2012 11:45:11
Edit 2: Proměnné $mesto a $jazyk by bylo vhodné ošetřit, ať se tam neposílají blbosti. Přinejmenším urlencode() místo toho strtr().
v běžném scriptu to ošetřené mám - tohle jsem udělal na rychlo na ukázku,
---------- Příspěvek doplněn 11.06.2012 v 12:20 ----------
Tak vyřešeno
Opravdu jde o blokaci od Google
Provizorně načítám na web data v iframe z jiného hostingu
A vyřeším to tak, že budu ty data ukládat do databáze a načítat je odtud s tím, že se to vždy nejdřív zeptá DB, zda tam mám aktuální data (mladší 60 minut) a pokud ne, tak teprve tehdy to pošle na Google dotaz a tu DB to aktualizuje.
Počet dotazů se mi sníží z 5000 za den na max 500 za den, tak by to snad už měl Google tolerovat
11. 6. 2012 11:45:11
https://webtrh.cz/diskuse/xml-parser-prosim-kde-je-co-spatne#reply773871
Pro odpověď se přihlašte.
Přihlásit