我有这个从谷歌 API 加载谷歌天气的 php 脚本。
<?php
//Weather Forecast icon and temperature from google weather API
$setYourLanguage = "en"; // Possibilities: "en" - english; "ru" - russian; "ka" - georgian;
//WEATHER, read google XML weather forecast
$URL = "http://www.google.com/ig/api?weather=".$myCity."&hl=".$setYourLanguage."";
$dataInISO = file_get_contents($URL);
$dataInUTF = mb_convert_encoding($dataInISO, "UTF-8", "ISO-8859-2"); //fix Google's API UTF-8 bug
$xml = simplexml_load_string($dataInUTF);
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$iconData = str_replace("/ig/images/weather/", "weather/", $current[0]->icon['data']);
$iconData = str_replace(".gif", ".png", $iconData);
?>
但有时页面无法加载,我在 apache2 日志中收到错误:
[Thu Aug 23 12:04:16 2012] [error] [client ::1] PHP Warning: simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in /Library/WebServer/Documents/wordpress/wp-content/themes/directorypress/homepage-structure.php on line 23
[Thu Aug 23 12:04:16 2012] [error] [client ::1] PHP Warning: simplexml_load_string(): Unsupported API in /Library/WebServer/Documents/wordpress/wp-content/themes/directorypress/homepage-structure.php on line 23
[Thu Aug 23 12:04:16 2012] [error] [client ::1] PHP Warning: simplexml_load_string(): ^ in /Library/WebServer/Documents/wordpress/wp-content/themes/directorypress/homepage-structure.php on line 23
[Thu Aug 23 12:04:16 2012] [error] [client ::1] PHP Fatal error: Call to a member function xpath() on a non-object in /Library/WebServer/Documents/wordpress/wp-content/themes/directorypress/homepage-structure.php on line 25
[Thu Aug 23 12:05:57 2012] [error] [client ::1] What
任何想法为什么会发生这种情况?我的理论是它无法正确连接到 URL 并以这种方式失败......但是为什么页面加载停止了?有没有办法避免这个错误?并允许页面完全加载?