Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Информер погоды c неправильной кодировкой Pogoda.mail

Информер погоды c неправильной кодировкой Pogoda.mail


     27.04.2014    Информер погоды Pogoda.mail    Все вопросы » Модули    3062

вопрос
Поставил информер погоды c Pogoda.mail
При просмотре страницы погода с mail модуль в неправильной кодировке отображается. В админке стоит win 1251, база тоже

В htaccess кодировку вписывал в самом верху, после строки определения индексного файла

DirectoryIndex index.php
AddDefaultCharset windows-1251

Тоже самое

Вписываю AddDefaultCharset utf-8
Сайт не правильно отображается а погода с mail нормально отображаеться

Ответа пока нет


4 комментария

vitnet
PHP-developer

vitnet - 27 апреля 2014 19:15 -

Как ставили?

ravchik
Юзер

ravchik - 27 апреля 2014 21:35 -

покажите сам модуль (код вывода), возможно просто надо добавить iconv

Stringek
Юзер

Stringek - 28 апреля 2014 19:50 -

Это meteo.php

<?php
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}

if (!$meteo) {

$city = "1460"; //город для которого будет погода в данном случае Москва, берем на 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=win";
$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);
}}

установка

подключение в файле index.php после строчки

require_once ROOT_DIR . '/engine/init.php';

вставляем

require_once ENGINE_DIR.'/modules/meteo.php';

ниже $tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
добавляем $tpl->set ( '{meteo}', $meteo);

в main.tpl вашего шаблона вставляем в нужное место {meteo}

ravchik
Юзер

ravchik - 30 апреля 2014 10:02 -

после
$meteo = str_replace('h1 a','h1',$html);
добавьте
$meteo = iconv('utf-8', 'cp1251', $meteo);
и удалите файл кэша /engine/cache/meteo.txt

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх