Gorev
Профессор
- Регистрация
- 30 Авг 2012
- Сообщения
- 213
- Реакции
- 40
Аналогичная проблема.
Перенёс сайт на другой хостинг и появились проблемы с кодировкой.
В чём проблема может быть?
UPD: Начал разбираться. Скрипт создаёт файл /engine/cache/week.txt
Подскажите как добавить, чтобы он создавал этот файл в нужной кодировке 1251 или ANSI
Перенёс сайт на другой хостинг и появились проблемы с кодировкой.
Код:
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
if (!$pogoda) {
$city_name = 'Дзержинске';
$url = 'http://pogoda.mail.ru/prognoz/dzerzhinsk/extended/'; //тянем погоду для Москвы
if(!is_dir("uploads/pogoda/")){mkdir("uploads/pogoda/"); chmod("uploads/pogoda/", 0777);}
$cache_file=$_SERVER['DOCUMENT_ROOT']."/engine/cache/week.txt";
if (file_exists( $cache_file ) &&
date('Y-m-d',filemtime($cache_file))==
date("Y-m-d", mktime(0, 0, 0, date("m") , date("d"), date("Y")))){
$f=fopen($cache_file,"rb");
$pogoda=fread($f,filesize($cache_file));
}else{
function get_web_page( $url,$proxy=null )
{
$uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
$cookie = $_SERVER['DOCUMENT_ROOT']."/cookie.txt";
$ch = curl_init( $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращает веб-страницу
curl_setopt($ch, CURLOPT_REFERER,"http://google.ru/");
curl_setopt($ch, CURLOPT_HEADER, 0); // не возвращает заголовки
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 10); // переходит по редиректам
curl_setopt($ch, CURLOPT_ENCODING, ""); // обрабатывает все кодировки
curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); // таймаут соединения
curl_setopt($ch, CURLOPT_TIMEOUT, 20); // таймаут ответа
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // останавливаться после 10-ого редиректа
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
function pogoda($week){
$pogoda = '<table width=98% cellspacing=0 cellpadding=0 class="forecast-ext forecast-ext_'.date('m').'"><tr><td><div class="forecast-ext__inner forecast-ext__inner_byhours">'.$week.'</td></tr></table>';
return $pogoda;
}
$result = get_web_page( $url );
$html = $result['content'];
preg_match('/<div class=\"forecast-ext__inner forecast-ext__inner_byhours\">(.*?)<\/section>/is',$html,$match);
$pogoda = pogoda($match[1]);
preg_match_all('/(\/img.*?)\"/',$pogoda,$img);
//print_r($img);
$count_img=count($img[0]);
for ($i=0;$i<$count_img;$i++){
$url_img=$img[1][$i];
$url_image=str_replace('/img/','http://pogoda.mail.ru/img/',$url_img);
if(preg_match('/img\/new/',$url_image)){
$url_img = $_SERVER['DOCUMENT_ROOT'].str_replace('/img/new/','/uploads/pogoda/',$url_img);}else{
$url_img = $_SERVER['DOCUMENT_ROOT'].str_replace('/img/status/png/weather/med35/onlight/','/uploads/pogoda/',$url_img);}
if (!file_exists($url_img)) {
$image=file_get_contents($url_image);
$fp=fopen($url_img,"w+");
fwrite($fp,$image);
fclose($fp); }
}
$imageurl = "http://".$_SERVER['HTTP_HOST']."/uploads/pogoda/";
$pogoda=str_replace('/img/new/',$imageurl,$pogoda);
$pogoda=str_replace('/img/status/png/weather/med35/onlight/',$imageurl,$pogoda);
@file_put_contents($cache_file,$pogoda);
}
$title = '<strong>Погода в '.$city_name.' Нижегородской области</strong><br> Прогноз погоды на неделю</strong>';
$tpl->load_template('pogoda.tpl');
$tpl->set('{description}',$title);
$tpl->set('{static}',$pogoda);
$tpl->compile('content');
$tpl->clear();
}
?>
В чём проблема может быть?
UPD: Начал разбираться. Скрипт создаёт файл /engine/cache/week.txt
Подскажите как добавить, чтобы он создавал этот файл в нужной кодировке 1251 или ANSI
Последнее редактирование: