rbc_logo
Время для прочтения: 2 мин. 27 сек.

Информер РБК в UTF-8

Информеры - автоматически изменяющиеся тестовые и графические элементы, размещенные на веб-сервере РБК и доступные для всех пользователей Интернета.

На этих элементах размещается информация о наиболее популярных финансовых индикаторах (курс доллара ЦБ РФ, СЭЛТ).

Наиболее популярным из информеров РБК является HTML-информер с использованием javascript.

В его состав входят:

  • СПБВБ: валюты (СЭЛТ)
  • Рынок наличной валюты
  • Российские фондовые индексы
  • Котировки акций. По данным РТС- МФБ
  • Котировки FOREX
  • Котировки фьючерсов
  • Мировые фондовые индексы
  • Погода в городах России и СНГ
  • Курсы ЦБ РФ
  • Курсы ЦБ РФ по драгоценным металлам

Для сборки информера, перейдите на сайт informer.ru и выберите нужные вам позиции для отображения.

Затем в head разделе вашей веб-страницы подключите javascript-файл


<head>
	<script src="http://www.rbc.ru/tables99/indices.js"></script>
</head>

А в том месте, где бы вы хотели видеть информер, вызовите функцию печатающую HTML-код


<body>
<script>
	print_ind('_RTS_INDEX_-_RBCCI_-_USD_CB_-_GBP_CB_-_EUR_CB_-_CHF_CB_');
</script>
</body>

Наслаждаемся результатом. Но, если ваш сайт в кодировке UTF-8, автоматически возникает проблема с кодировками, так как информер отдается сервером RBC в кодовой таблице windows-1251. Для решения этой проблемы есть 2 варианта.

1. Использование атрибута charset тега script


<head>
	<script src="http://www.rbc.ru/tables99/indices.js" charset="windows-1251"></script>
</head>
<body>
<script charset="windows-1251">
	print_ind('_RTS_INDEX_-_RBCCI_-_USD_CB_-_GBP_CB_-_EUR_CB_-_CHF_CB_');
</script>
</body>

2. Отдавать javascript-файл РБК через наш РНР-скрипт


<head>
	<script src="http://наш_домен/js/rbc_indices.php" charset="UTF-8"></script>
</head>
<body>
<script charset="UTF-8">
	print_ind('_RTS_INDEX_-_RBCCI_-_USD_CB_-_GBP_CB_-_EUR_CB_-_CHF_CB_');
</script>
</body>

В файле rbc_indices.php пишем примерно следующее:

header('Content-type: application/javascript; charset=UTF-8');
$url = 'http://www.rbc.ru/tables99/indices.js';
$content = file_get_contents($url);
$content = iconv('windows-1251', 'utf-8', $content);
die($content);

Данные методы можно применять не только для сервера РБК, а практически в любых ситуациях, когда кодировка сайта отличается от кодировки скрипта.

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

14 комментариев

по хронологии
по рейтингу сначала новые по хронологии

спасибо большое! я уж хотел ради этого информера кодировку сайта переделывать))

Автор
Кобзарёв Михаил

Собственно, не за что. Рад был помочь.

Спасибо за совет, очень помогли! А можно еще как-то сделать так, чтобы закрыть внешние ссылки из этого информера в nofollow?!

Автор
Кобзарёв Михаил

Как-то так попробуйте:


[php]

<?php

...

$content = str_replace('<A ', '<A rel="nofollow" ', $content);

...

?>

[/php]

Михаил, Вы - гений! Спасибо! 🙂

Автор
Кобзарёв Михаил

Спасибо за комплимент! Обращайтесь.

Здравствуйте, похожая проблема из социальными закладками, например от гугл и яндекс. Сайт на Вордпресс в кодировке utf-8, все файлы темы и база, сам движок без изменений, вообщим при постинге все проходит гут, но когда добавляешь страницу в закладки гугл или яндекс то инфа в полях заголовок и описание отдается в 1251 коде. Проблема не в теме, не в плагине и не в хостинге, так как всё пробовал менять. При чем происходит это не постоянно, а в основном при копировании из внешних источников, например фразы из других интернет страниц, или текста из ворда, ну с вордом понятно, вопрос закрыт, а вот по поводу самого движка, что может быть, также пробовал другие редакторы помимо стандартного — фигушки! А еще если хреного выводится инфа, то проблему решает вставка спец символа в начало документа любого из из таблицы ANSi, тогда все нормально отображается. Вот так выглядит эта лобуда http://uaimage.com/image/1286d535

Автор
Кобзарёв Михаил

Сайт ваш покажите.

ссылку прикрепил, спасибо за инетерес к моей проблеме. проблема кстати, немного прояснилась. Каракули выдаются, если вставить английские слова в первый абзац.

http://frostgame.net/ Вот ссылка

Михаил спасибо! то что искал по кодировке! правда не получилось с вычленением ссылок... ну это ладно. 🙂

Автор
Кобзарёв Михаил

Собственно, не за что 🙂

в коде варианта №1 опечатка charset="windows=1251" (windows-1251)

Автор
Кобзарёв Михаил

Спасибо, поправил