Добра Вам, одноклубники Помогите пожалуйста решить проблему ошибки в погоде: Спойлер Warning: simplexml_load_file(): ./cache/weather23471.xml:1: parser error : AttValue: " or ' expected in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): tp-equiv="X-UA-Compatible" content="IE=edge"><title>404</title><meta http-equiv= in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): ^ in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): ./cache/weather23471.xml:1: parser error : attributes construct error in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): tp-equiv="X-UA-Compatible" content="IE=edge"><title>404</title><meta http-equiv= in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): ^ in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): ./cache/weather23471.xml:1: parser error : Couldn't find end of Start Tag meta line 1 in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): tp-equiv="X-UA-Compatible" content="IE=edge"><title>404</title><meta http-equiv= in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): ^ in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): ./cache/weather23471.xml:1: parser error : xmlParseEntityRef: no name in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Warning: simplexml_load_file(): port:function(e){var t=new Image;t.onload=t.onerror=function(){e(1===this.width& in /httpdocs/modules/mod_weather/mod_weather.php on line 47 Код модуля: Спойлер Код (CODE): <?php defined('_JEXEC') or die; $jMenu = JFactory::getApplication()->getMenu("site"); $lang = $jMenu->getActive()->language; // id = 28437 function get_weather($id){ $content_file = './cache/weather'.$id.'.xml'; $url='http://export.yandex.ru/weather-ng/forecasts/'.$id.'.xml'; $time_file = './cache/time'.$id; $time_cache = 7200; $wa =array(); if (file_exists($time_file)){ $time= file($time_file); } else{ $time[0]=0; } if($time[0]<time()){ $xml_content = file_get_contents($url); if($xml_content!=''){ if($fp=fopen($content_file, "w+")){ fwrite($fp,$xml_content); fclose($fp); } $new_time = time()+$time_cache; if($fp=fopen($time_file,"w+")){ fwrite($fp,$new_time); fclose($fp); } $xml = simplexml_load_string($xml_content); $wa[] = $xml->fact[0]->temperature; $wa[] = $xml->informer[0]->temperature[0]; $wa[] = $xml->informer[0]->temperature[1]; return $wa; } } else{ $xml= simplexml_load_file($content_file); $wa[] = $xml->fact[0]->temperature; $wa[] = $xml->informer[0]->temperature[0]; $wa[] = $xml->informer[0]->temperature[1]; return $wa; } } $out = get_weather('23471'); if ($lang == 'ru-RU'){ echo '<div class="weather"> <span class="weather_word">Погода</span><br /> <span class="fact-weather">Город '.$out[0].' °С</span> </div>'; } elseif ($lang == 'en-GB'){ echo '<div class="weather"> <span class="weather_word">The Weather</span><br /> <span class="fact-weather">City '.$out[0].' °С</span> </div>'; } ?> line 47 это "$xml= simplexml_load_file($content_file);" Спрашивал по ключевым словам Google, но ничего к сожалению не помогло. Добавлял в .htaccess "php_value allow_url_fopen On" и "php_flag allow_url_fopen On", но тщетно
Яндекс, как я понял, больше не даёт выгрузки в XML. Точнее даже, как я понял, Яндекс никогда официально и открыто такие выгрузки не предоставлял. Ты посмотри что он тебе в weather.xml помещает. Там код страницы с ошибкой 404, естественно он не может её спарсить. Можно делать, например, из выгрузок meteoservice.ru mod_weather Код (PHP): <?php defined('_JEXEC') or die('Прямой доступ закрыт'); $cityId = $params->get('cityId', '37'); // Можешь через поле в админке код забивать. А можно вообще в админку подключить КЛАДР... $source = 'http://xml.meteoservice.ru/export/gismeteo/point/'.$cityId.'.xml'; $weather = simplexml_load_file($source); $cityName = urldecode($weather->REPORT->TOWN['sname']); $tempMin = $weather->REPORT->TOWN->FORECAST->TEMPERATURE['min']; $tempMax = $weather->REPORT->TOWN->FORECAST->TEMPERATURE['max']; require JModuleHelper::getLayoutPath('mod_weather', $params->get('layout', 'default')); ?> tmpl/default.php Код (PHP): <?php defined('_JEXEC') or die('Прямой доступ закрыт'); ?> <div class="weather-block"> <div class="spacer"> Сегодня в городе <?php echo $cityName; ?>: от <?php echo $tempMin; ?> до <?php echo $tempMax; ?> </div> </div> На, почитай что можно достать из ихнего XML: http://www.meteoservice.ru/content/export.html "Вот так. В таком духе, в таком разрезе..." (с)
Некоторых нужных городов нет в списке, и не у всех есть "Погода на сегодня" ‒ не подходит Может кто сможет сделать из этих советов? Мне бы под формат модуля, который указал выше