Кодировка - куда копать?

Статус
В этой теме нельзя размещать новые ответы.

pierrevk

Постоялец
Регистрация
22 Сен 2009
Сообщения
59
Реакции
5
Приветствую!
Есть следующая проблема: пытаюсь скопировать материалы с сайта - сталкиваюсь с тем, что в исходном коде HTML имею следующий нечитабельный текст, пример:
Код:
<em>&#_1044;&#_1080;&#_1092;&#_1092;&#_1091;&#_1079;&#_1086;&#_1088;:</em>

ps нижние подчеркивания ввел сознательно, чтобы донести суть проблемы, иначе форум автоматом конвертирует символы.
Прошу помощи знатоков ПХП - как эту "лабуду" привести к корректному виду:
Код:
<em>Диффузор:</em>
ПС: на странице всё отображается корректно - проблема таится именно в исходном коде. Интересует решение именно на ПХП, поскольку в нем делаю предварительную обработку текста.
Спасибо!
 
Причем тут PHP вообще? Кодировка твоя в 1252, а тебе нужна в 1251.

Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>test</title>
</head>
<body>
Сюда свой непонятный текст пихай, только убери нижнее подчеркивание!
</body>
</html>
 
Udav, не совсем в тему!
Проблема остается - у меня уже есть много-много исходного кода, который абсолютно не читабелен. Страница отображается корректно, но для работы мне нужно скорректировать исходный код. Сами собой "&#_1044;" на буквы в исходном коде не поменяются, а для меня важен именно он - код.
 
Скрытое содержимое доступно для зарегистрированных пользователей!

html_entity_decode() тебе в помощь

ЗЫ читай про htmlentities() и get_html_translation_table()
 
В чем проблема вставить в мой шаблон свой исходный код? Потом сделать замену #_1 на #1?
Вот тебе и нормальный текст будет.
 
Человеку нужен текст, моло ли как он его обрабатывает потом

для того же синонимайзера такое представление не подходит
 
  • Заблокирован
  • #7
тут не в кодировке дело, а в том, что символы в виде html-мнемоник
советую покопать в сторону реверсинга функции htmlentitles из php
 
PHP:
function unhtmlentities($string)
{
	$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
    $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
    $trans_tbl = get_html_translation_table(HTML_ENTITIES);
    $trans_tbl = array_flip($trans_tbl);
    return strtr($string, $trans_tbl);
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху