проблемы с погодой API Google - PullRequest
       27

проблемы с погодой API Google

0 голосов
/ 06 апреля 2011

У меня проблемы с API погоды Google. Я уже некоторое время использую этот скрипт http://komunitasweb.com/2009/09/showing-the-weather-with-php-and-google-weather-api/, но раньше я получал эту ошибку:

Предупреждение: simplexml_load_file () [Function.simplexml-нагрузка файл]: //www.google.com/ig/api?weather=bermuda:2: ошибка синтаксического анализатора: открытие и окончание тега несоответствие: мета-строка 1 и заголовок в /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [Function.simplexml-нагрузка файл]: 302 перемещено в /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: ^ in /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [Function.simplexml-нагрузка файл]: //www.google.com/ig/api?weather=bermuda:6: ошибка синтаксического анализатора: открытие и окончание тега несоответствие: строка заголовка 1 и HTML в /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [Function.simplexml-нагрузка файл]: в /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: ^ in /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [Function.simplexml-нагрузка файл]: //www.google.com/ig/api?weather=bermuda:7: ошибка синтаксического анализатора: преждевременное завершение данных в теге HTML строка 1 в /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: в /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: ^ in /home/webmx04/public_html/weather/widgetlive1.php по линии 3

Неустранимая ошибка: вызов функции-члена xpath () для необъекта в /home/webmx04/public_html/weather/widgetlive1.php по линии 4

Может кто-нибудь помочь мне спасибо

Мой код:

<?
$xml = simplexml_load_file('http://www.google.com/ig/api?weather=bermuda');
$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");
?>
<html>
<head>
    <title>Google Weather API</title>
</head>
<body>
<div id="widget-wrapper"><!-- start widget-wrapper-->
 <div class="weather"><!-- start weather--> 

         <h2><a href="/section/weather" title="More on Weather" target="_top">Current Weather</a></h2>  
           <a href="/section/weather" target="_top"><img src="<?= 'http://www.rgbdahosting.com' . $current[0]->icon['data']?>" alt="More on Weather"?></a>
            <span class="condition">
          <a href="/section/weather" title="More on Weather" target="_top"><H4><?= $current[0]->temp_f['data'] ?>&deg;F</H4>

           <p><?= $current[0]->condition['data'] ?></p></a>
            </span>
        </div><!-- end weather-->

</div>  <!-- end widget-wrapper-->
</body>

1 Ответ

1 голос
/ 08 августа 2012

Очевидно, Google представил капчу в своем API погоды. Он будет работать один, два или три раза, но после нескольких запросов от одного и того же сервера он попросит воспроизвести капчу. То, что ваш плагин не может сделать.

Я не знаю, как обойти это, так что, похоже, нам нужно будет найти другой погодный API для использования. Если я ошибаюсь, пожалуйста, поправьте меня, это было бы полезно.

Кэширование результатов из Google Weather также может помочь. 1 запрос в 15 или 30 минут должен быть приемлемым, нет?

...