• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь модуль погоды

gon9

Постоялец
Регистрация
18 Май 2013
Сообщения
53
Реакции
1
не получается поставить модуль погоды, на сайте выглядит с крокозябрами) кодировкой другой, хотя в модуле стоит win,
Код:
<?php 
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}
if (!$meteo) {
$city = "1653"; //город для  которого будет погода в данном случае Москва, берем на http://pogoda.mail.ru/informer/index.html

$cache_file=$_SERVER['DOCUMENT_ROOT']."/engine/cache/meteo.txt";
if (file_exists( $cache_file ) && date('H',filemtime($cache_file))== date("H", mktime(date("H"), 0, 0, 0, 0, 0))){
  $f=fopen($cache_file,"rb"); 
  $meteo=fread($f,filesize($cache_file));
  }
else{
$url = "http://pogoda.mail.ru/informer/weather.js?city=".$city."&view=2&encoding=windows-1251";
$html = file_get_contents($url);
$html = str_replace("document.writeln('",'',$html);
$html = str_replace("');",'',$html);
$html = preg_replace('/<h2>.*?<\/h2>/i','',$html);
$html = preg_replace('/<a.*?[>^]/i','',$html);
$html = str_replace('</a>','',$html);
$html = str_replace('<br>подробный прогноз','',$html);
$html = preg_replace('/<div class=\"top\">.*<\/div>/i','',$html);
$html = str_replace(':1px solid #ced0d9;border-top','',$html);
$meteo = str_replace('h1 a','h1',$html);
@file_put_contents($cache_file,$meteo);
}}

на сайте кодировка виндовс 1251
 
Последнее редактирование модератором:
Сам файл модуля должен быть в кодировке cp1251 (ANSI), а он, скорее всего, в utf-8. Насколько понимаю, шаблоны модуль не использует, но если это не так - проверить кодировку шаблона.

P.s. на будущее: 2 поста подряд - плохо, а в 1 посте надо версию ДЛЕ указывать.
 
Сам файл модуля должен быть в кодировке cp1251 (ANSI), а он, скорее всего, в utf-8. Насколько понимаю, шаблоны модуль не использует, но если это не так - проверить кодировку шаблона.
кодировка шаблона виндовс1251, файл модуля, написано 1251
 
Пробуй тогда через iconv:
после строки:
$html = file_get_contents($url);
добавь строку:
$html = iconv( "UTF-8", "WINDOWS-1251", $html );

Либо же через mb_convert_encoding:
после итой же строки добавь:
$html = mb_convert_encoding($html, "WINDOWS-1251", "UTF-8" );
 
Пробуй тогда через iconv:
после строки:
$html = file_get_contents($url);
добавь строку:
$html = iconv( "UTF-8", "WINDOWS-1251", $html );

Либо же через mb_convert_encoding:
после итой же строки добавь:
$html = mb_convert_encoding($html, "WINDOWS-1251", "UTF-8" );

увы, не получилось, ничего не изменилось
 
Напиши мне в ICQ...

Основной виновник - mail.ru - они не зависимо от выбранной кодировки, высылают код в UTF-8.
Самый простой вариант - написать им в саппорт... А так, вечером код покопаю.
 
Последнее редактирование:
Вместо:
encoding=windows-1251
должно быть:
encoding=win
Проверял? Протестировал? А я проверил и протестировал и посте выше сказал - что проблема у mail.ru... Не зависимости от указании кодировки (в том числе и win), mail.ru отдаёт файл в кодировке utf-8.
 
Поставьте кодировку анси на все и удалите фалик
meteo.txt
 
Назад
Сверху