# 1 
Тема:  Rss и разные кодировки
		crueltytanya  
		Пользователь  
 
 
 МестныйСообщений:  20 
Зарегистрирован:  13 Ноября 2008, 07:37:55 
Сказали спасибо  0 раз Статус:  offline 
		Опубликовано 05 Декабря 2009, 10:17:29 
		
 
 
		Дело вот в чем. Стоит плагин RSS, все rss ленты в utf-8, а сайт в win-1251. И тогда получается вот что: 
' '  
Нашла код: 
 
<?php 
error_reporting(0); 
if($_GET['url']){ 
	$handle = @fopen($_GET['url'], "r" ) ; 
	if (!$handle) {header("HTTP/1.0 404 Not Found" ); exit; } 
	$content = ''; 
	while (!feof($handle)) { 
	  $content .= fread($handle, 8192); 
	} 
	fclose($handle);     
	preg_match('/<\?.+?encoding="(.+?)"/msi', $content, $match); 
	if($match[1] && strcasecmp($match[1], "utf-8" ) != 0 && strcasecmp($match[1], "utf8"  != 0){ 
		$content = preg_replace("/$match[1]/", "utf-8", $content, 1) ; 
		if($match[1] == "windows-1251" ) 
               		$content = win3utf($content); 
          	else 
          		$content = @iconv($match[1], "utf-8", $content); 
     } 
     header("Content-Type: text/xml; charset=utf-8" ); 
     echo $content;      
     exit; 
} 
function win3utf($s)    { 
   for($i=0, $m=strlen($s); $i<$m; $i++)    { 
       $c=ord($s[$i]); 
       if ($c<=127) {$t.=chr($c); continue; } 
       if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; } 
       if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; } 
       if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; } 
       //if ($c==184) { $t.=chr(209).chr(209); continue; }; 
     if ($c==184) { $t.=chr(209).chr(145); continue; };        
   if ($c==168) { $t.=chr(208).chr(129);  continue; }; 
   } 
   return $t; 
} 
?> 
 
А как его применить понятия не имею. Подскажите как его можно использовать, а то совсем пхп не знаю. 
Нашла это здесь . Помогите пожалуйста. 
		
 
 
		 
		
^ наверх ^  
 
 
		# 2 
  
		Dysha  
		Пользователь  
 
PHP Fusion 6.01.19.4  
 Любитель FusionСообщений:  158 
Откуда:  Кузбасс 
Зарегистрирован:  21 Апреля 2008, 11:24:11 
Сказали спасибо  9 раз Статус:  offline 
ICQ статус   
		Опубликовано 05 Декабря 2009, 11:40:27 
		
 
 
		Найди в коде все строки, которые содержат в себе кодировку utf-8 и замени её на windows-1251! 
		
  
-------------------- Едет веб-мастер на поезде и слышит: <td>...</td>, <td>...</td>, <td>...</td> 
		
		
^ наверх ^  
     
 
1  пользователь сказал спасибо Вам: 
crueltytanya  
 
		# 3 
  
		crueltytanya  
		Пользователь  
 
 
 МестныйСообщений:  20 
Зарегистрирован:  13 Ноября 2008, 07:37:55 
Сказали спасибо  0 раз Статус:  offline 
		Опубликовано 14 Декабря 2009, 03:46:55 
		
 
 
		Попробую. Спасибо огромное!!!!  
		
 
 
		 
		
^ наверх ^  
 
 
		# 4 
  
		crueltytanya  
		Пользователь  
 
 
 МестныйСообщений:  20 
Зарегистрирован:  13 Ноября 2008, 07:37:55 
Сказали спасибо  0 раз Статус:  offline 
		Опубликовано 14 Декабря 2009, 04:32:58 
		
 
 
		В плагине не указана кодировка. Это сами ленты в этой кодировке. Что делать. Скажите как можно применить код для перехода с одной кодировки на другую. Код в первом сообщении. Кода его сунуть??? 
		
 
 
		 
		
^ наверх ^  
 
 
		# 5 
  
		Psc  
		SF Team  
 
Psc  
SF Support Team  
 Почетный SFСообщений:  2515 
Откуда:  As is 
Зарегистрирован:  10 Ноября 2007, 13:15:07 
Сказали спасибо  353 раз Статус:  offline 
		Опубликовано 14 Декабря 2009, 05:25:21 
		
 
 
		iconv конвертит как бэ. 
Нужно только чтоб оно верно работало и все будет. 
		
  
-------------------- Retired 
		
		
^ наверх ^  
 
 
		# 6 
  
		crueltytanya  
		Пользователь  
 
 
 МестныйСообщений:  20 
Зарегистрирован:  13 Ноября 2008, 07:37:55 
Сказали спасибо  0 раз Статус:  offline 
		Опубликовано 16 Декабря 2009, 12:34:43 
		
 
 
		А можно, пожалуйста, немного подробнее что, куда и как. А то совсем не понимаю.  
		
 
			 
			[Изменил(а) crueltytanya  , 16 Декабря 2009, 12:35:00] 
 
		 
		
^ наверх ^  
 
 
		# 7 
  
		crueltytanya  
		Пользователь  
 
 
 МестныйСообщений:  20 
Зарегистрирован:  13 Ноября 2008, 07:37:55 
Сказали спасибо  0 раз Статус:  offline 
		Опубликовано 21 Декабря 2009, 04:30:04 
		
 
 
		Эх, ну подскажите, пожалуйста, как можно все таки применить этот код или предложите какую - нибудь альтернативу. 
 
<?php 
error_reporting(0); 
if($_GET['url']){ 
$handle = @fopen($_GET['url'], "r" ) ; 
if (!$handle) {header("HTTP/1.0 404 Not Found" ); exit; } 
$content = ''; 
while (!feof($handle)) { 
$content .= fread($handle, 8192); 
} 
fclose($handle); 
preg_match('/<\?.+?encoding="(.+?)"/msi', $content, $match); 
if($match[1] && strcasecmp($match[1], "utf-8" ) != 0 && strcasecmp($match[1], "utf8"smiley != 0){ 
$content = preg_replace("/$match[1]/", "utf-8", $content, 1) ; 
if($match[1] == "windows-1251" ) 
$content = win3utf($content); 
else 
$content = @iconv($match[1], "utf-8", $content); 
} 
header("Content-Type: text/xml; charset=utf-8" ); 
echo $content; 
exit; 
} 
function win3utf($s) { 
for($i=0, $m=strlen($s); $i<$m; $i++) { 
$c=ord($s[$i]); 
if ($c<=127) {$t.=chr($c); continue; } 
if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; } 
if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; } 
if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; } 
//if ($c==184) { $t.=chr(209).chr(209); continue; }; 
if ($c==184) { $t.=chr(209).chr(145); continue; }; 
if ($c==168) { $t.=chr(208).chr(129); continue; }; 
} 
return $t; 
} 
?> 
 
		
 
 
		 
		
^ наверх ^  
 
 
		# 8 
  
		iceberg  
		Пользователь  
 
 
 ЗавсегдатыйСообщений:  57 
Зарегистрирован:  24 Августа 2009, 19:14:36 
Сказали спасибо  2 раз Статус:  offline 
		Опубликовано 21 Декабря 2009, 06:27:30 
		
 
 
		замени везде где видишь , что написано utf-8 на win-1251 в этом файле. Файл откроешь в блокноте. 
		
 
			 
			[Изменил(а) iceberg  , 21 Декабря 2009, 06:29:40]  
-------------------- А ты такой холодный ... 
		 
		
^ наверх ^  
 
 
		# 9 
  
		crueltytanya  
		Пользователь  
 
 
 МестныйСообщений:  20 
Зарегистрирован:  13 Ноября 2008, 07:37:55 
Сказали спасибо  0 раз Статус:  offline 
		Опубликовано 26 Декабря 2009, 11:41:32 
		
 
 
		Данное предложение уже поступало, но дело в том что это не файл rss, это файл для того чтобы адаптировать rss ленты в utf в win-1251, проблема в том, что я не знаю как применить этот код, вставить его в сам файл rss, либо создать новый файл с этим кодом и связать его с rss файлом. Как редактировать файлы я знаю. 
		
 
			 
			[Изменил(а) crueltytanya  , 26 Декабря 2009, 11:42:31] 
 
		 
		
^ наверх ^