htmlspecialchars_decode не работает

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 10 июн 2011.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Помогите, пожалуйста, преобразовать текст вида
    в читаемый вид.
    echo htmlspecialchars_decode($text,ENT_QUOTES);
    Не преобразовывает текст.
     
  2. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    Какого вида текст то?
     
  3. Delk0

    Delk0

    Регистр.:
    26 мар 2010
    Сообщения:
    284
    Симпатии:
    47
    Можно попробовать вручную:
    PHP:
    function htmlspc_decode($string,$style=ENT_COMPAT)
    {
        
    $translation array_flip(get_html_translation_table(HTML_SPECIALCHARS,$style));
        if(
    $style === ENT_QUOTES){ $translation['''] = "'"; }
        return strtr(
    $string,$translation);
    }
     
  4. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Текст вида:
    PHP:
    #1040;& #1085;& #1072;& #1083;& #1080;& #1079;
    Пробелы добавил, потому что форум переводит эти символы в буквы.
     
  5. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    PHP:
    echo utf8_decode('& #1040;& #1085;& #1072;& #1083;& #1080;& #1079;'); //пробелы убрать
    utf8_decode раскодирует из utf8 в ISO-8859-1 - в этом наборе нет кириллицы
    ежели не поможет, это точно спасет
    PHP:
    echo iconv('utf-8','windows-1251'html_entity_decode'& #1040;& #1085;& #1072;& #1083;& #1080;& #1079;'ENT_NOQUOTES'utf-8'));
     
  6. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Первый вариант не помог.
    Второй - сработал.
    Объясните, пожалуйста, почему не работал html_decode либо utf8_decode?
     
  7. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    htmlspecialchars_decode() – метод позволяет декодировать информацию, записанную с применением символьных подстановок HTML. Как известно, многие символы, такие, например, как символы сравнения «больше» или «меньше», нельзя напрямую включать в содержимое HTML-страницы, так как они выполняют служебные функции. Поэтому для таких символов установлены специализированные текстовые подстановки. И искомый метод позволяет конвертировать текст с подобными подстановками в обычную текстовую строку с нормальными символами. В качестве параметра методу передается строка с символьными HTML-подстановками. Метод, в свою очередь, возвращает уже преобразованную строку чистого текста.
    utf8_decode () - не знает кириллицу
     
    LEXAlForpostl нравится это.