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

Тема в разделе "PHP", создана пользователем pierrevk, 23 июл 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pierrevk

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5
    Приветствую!
    Есть следующая проблема: пытаюсь скопировать материалы с сайта - сталкиваюсь с тем, что в исходном коде HTML имею следующий нечитабельный текст, пример:
    Код:
    <em>&#_1044;&#_1080;&#_1092;&#_1092;&#_1091;&#_1079;&#_1086;&#_1088;:</em>
    
    ps нижние подчеркивания ввел сознательно, чтобы донести суть проблемы, иначе форум автоматом конвертирует символы.
    Прошу помощи знатоков ПХП - как эту "лабуду" привести к корректному виду:
    Код:
    <em>Диффузор:</em>
    ПС: на странице всё отображается корректно - проблема таится именно в исходном коде. Интересует решение именно на ПХП, поскольку в нем делаю предварительную обработку текста.
    Спасибо!
     
  2. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    781
    Симпатии:
    153
    Причем тут PHP вообще? Кодировка твоя в 1252, а тебе нужна в 1251.

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

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5
    Udav, не совсем в тему!
    Проблема остается - у меня уже есть много-много исходного кода, который абсолютно не читабелен. Страница отображается корректно, но для работы мне нужно скорректировать исходный код. Сами собой "&#_1044;" на буквы в исходном коде не поменяются, а для меня важен именно он - код.
     
  4. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    http://yapro.ru/web-master/xhtml/html-kodi_bukv_i_specialinih_simvolov.html
    html_entity_decode() тебе в помощь

    ЗЫ читай про htmlentities() и get_html_translation_table()
     
  5. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    781
    Симпатии:
    153
    В чем проблема вставить в мой шаблон свой исходный код? Потом сделать замену #_1 на #1?
    Вот тебе и нормальный текст будет.
     
  6. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    Человеку нужен текст, моло ли как он его обрабатывает потом

    для того же синонимайзера такое представление не подходит
     
    pierrevk нравится это.
  7. blizz123

    blizz123 Читатель

    Заблокирован
    Регистр.:
    25 апр 2010
    Сообщения:
    99
    Симпатии:
    17
    тут не в кодировке дело, а в том, что символы в виде html-мнемоник
    советую покопать в сторону реверсинга функции htmlentitles из php
     
  8. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    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);
    }

     
Статус темы:
Закрыта.