Верх страницы
Обложка к записи Информер РБК в UTF-8
Время для прочтения: 0 мин. 6 сек.

Информер РБК в 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);

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

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

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

17 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Vicy
Vicy
12 лет назад

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

altevsk
12 лет назад

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

altevsk
12 лет назад
Ответить на  Кобзарёв Михаил

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

Derek
Derek
11 лет назад

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

Derek
Derek
11 лет назад

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

Derek
Derek
11 лет назад

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

Антон Михайлов
11 лет назад

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

Лёха
Лёха
11 лет назад

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

Владимир
Владимир
7 лет назад
Ответить на  Кобзарёв Михаил

Михаил, здравствуйте! Нашёл Вашу статью в ходе поиска решения для моей проблемы: сайт передаёт заголовок text/html, однако фактически обрабатывается скриптом и при его отключении представляет собой чистый текст без визуальных эффектов. Перешёл на https и во время настройки заголовков безопасности обнаружил, что при добавлении Header nosniff перестают работать «всплывающие картинки» в галерее (картинка начинает открываться в виде отдельной страницы), а браузеры сигнализируют, что заявленный тип text/html не соответствует реальному, «скриптовому». Правильно ли я понял из Вашей статьи, что мне надо в index.php прописать первую строчку из Вашего примера, заменив указанные в моем файле text/html на application/JavaScript? Не навредит ли это сайту в глазах поисковых систем? Или лучше оставить сайт без nosniff? Заранее благодарен Вам за ответ! С уважением, Владимир

Владимир
Владимир
7 лет назад
Ответить на  Кобзарёв Михаил

Михаил, добрый вечер!
Благодарю Вас за ответ!
Буду искать рнр-файл, в котором эту строчку надо вписать.
С уважением,
Владимир

Предыдущая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы