Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите перекодировать rss сообщение "utf-8" "windows-1251" / 5 сообщений из 5, страница 1 из 1
28.07.2007, 19:18
    #34690789
banyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите перекодировать rss сообщение "utf-8" "windows-1251"
Всем привет!
Я тут на днях взялся за RSS и который день воюю с кодировкой. XML файл у меня в кодировке UTF-8, а сайт windows-1251
Пробовал и XML файл писать с кодировкой windows-1251, но все равно информация выводится козябриками.
Пробовал в рнр файле перед выводом информации вставлят функцию
print incov("utf-8", "windows-1251", $content);
Но фокус не прошел :)

Подскажите, пожалуйста, как правильно написать функцию перекодирования!
...
Рейтинг: 0 / 0
29.07.2007, 19:09
    #34691240
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите перекодировать rss сообщение "utf-8" "windows-1251"
хм... Надо коды смотреть
А нельзя сайт в UTF-8 ?
...
Рейтинг: 0 / 0
30.07.2007, 10:39
    #34691801
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите перекодировать rss сообщение "utf-8" "windows-1251"
В принципе если в xml-е указана правильная кодировка, то это уже дело вьюера (рсс-ридера или браузера) отображать его в соответствии с тем что ему сказали.
...
Рейтинг: 0 / 0
30.07.2007, 11:44
    #34692095
banyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите перекодировать rss сообщение "utf-8" "windows-1251"
Сайт,- вернее их несколько,- уже сделаны на win-1251...

А вот с написанием функции перекодировки и возникают проблемы... у кого-нибудь есть опыт?

Чем смогу - помогу!!!
...
Рейтинг: 0 / 0
30.07.2007, 11:49
    #34692117
banyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите перекодировать rss сообщение "utf-8" "windows-1251"
Код рнр обрабортчика могу выложить... он не очень большой

<?
set_time_limit(0);

$file ="file.xml";

printDice();

function printDice() {

$rss1=rand(1,4); // ротатор сайтов

showrss($rss1);

} // завершение prtintDice

function showrss($value) {
global $file;
if ($value==1){
$file="http://111bazhin.com/rss/bazhin-com.xml";
} else if ($value==2){
$file="http://111bazhin.com/rss/amaltea.xml";
} else if ($value==3){
$file="http://111bazhin.com/rss/lider-club-com.xml";
} else if ($value==4){
$file="http://111bazhin.com/rss/mycalendar.xml";
}

} // завершение showrss


// $file = "http://111bazhin.com/rss/rss.xml";


$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;


function startElement($parser, $name, $attrs) {
global $rss_channel, $currently_writing, $main;
switch($name) {
case "RSS":
case "RDF:RDF":
case "ITEMS":
$currently_writing = "";
break;
case "CHANNEL":
$main = "CHANNEL";
break;
case "IMAGE":
$main = "IMAGE";
$rss_channel["IMAGE"] = array();
break;
case "ITEM":
$main = "ITEMS";
break;
default:
$currently_writing = $name;
break;
}
}

function endElement($parser, $name) {
global $rss_channel, $currently_writing, $item_counter;
$currently_writing = "";
if ($name == "ITEM") {
$item_counter++;
}
}

function characterData($parser, $data) {
global $rss_channel, $currently_writing, $main, $item_counter;
if ($currently_writing != "") {
switch($main) {
case "CHANNEL":
if (isset($rss_channel[$currently_writing])) {
$rss_channel[$currently_writing] .= $data;
} else {
$rss_channel[$currently_writing] = $data;
}
break;
case "IMAGE":
if (isset($rss_channel[$main][$currently_writing])) {
$rss_channel[$main][$currently_writing] .= $data;
} else {
$rss_channel[$main][$currently_writing] = $data;
}
break;
case "ITEMS":
if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
$rss_channel[$main][$item_counter][$currently_writing] .= $data;
} else {
//print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");
$rss_channel[$main][$item_counter][$currently_writing] = $data;
}
break;
}
}
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);

// output as HTML

$content ="";
$content .="<div class=\"modul\">";
$content .="<table width=\"100%\" border=\"0\"><tr><td width=\"100%\">";
if (isset($rss_channel["IMAGE"])) {
$content.="<a href=\"" . $rss_channel["LINK"] . "\" target=\"_blank\"><img border=\"0\" src=\"" . $rss_channel["IMAGE"]["URL"] . "\" align=\"middle\" alt=\"" . $rss_channel["IMAGE"]["TITLE"] . "\"></a>  " . $rss_channel["TITLE"] . "";
} else {
$content.= "" . $rss_channel["TITLE"] . " :: ";
}
$content.="" . $rss_channel["DESCRIPTION"] . "<br>";
if (isset($rss_channel["ITEMS"])) {
if (count($rss_channel["ITEMS"]) > 0) {
for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) {
$content.="<a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\" target=\"_blank\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</a><br>";
$content.="<div class=\"t_text\">" . html_entity_decode($rss_channel["ITEMS"][$i]["DESCRIPTION"]) . "</div>";
}
} else {
$content.="<b>Эта статья не найдена</b>";
}
}
$content .="<hr>";
$content .="</td></tr></table>";
$content .="</div>";



print $content;


?>


?>
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите перекодировать rss сообщение "utf-8" "windows-1251" / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]