За последние 24 часа нас посетили 21633 программиста и 1031 робот. Сейчас ищут 712 программистов ...

htmlspecialchars портит сущности

Тема в разделе "PHP для новичков", создана пользователем TeslaFeo, 30 янв 2018.

Метки:
  1. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Приветствую Вас, уважаемые форумчане!

    Есть у меня рукоделие, которое формирует XML файлы из запрошенного через API текста.
    Для валидности XML в тексте не должно быть спецсимволов (XML/HTML хз) их убираю функцией htmlspecialchars. Но встречаются сущности, которые портятся.
    например ° превращается в °

    Как бы мне и рыбку съесть, и рыбку съесть? :)
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    <![CDATA[ тут любая шняга с любыми тегами ]]
     
    TeslaFeo нравится это.
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Потому что htmlspecialchars - это для HTML...
    Если у тебя уже есть html-сущности в тексте, можешь попробовать привести их в чистый вид через htmlentities(), а потом обратно через htmlspecialchars. Ну или как выше Дмитрий отписался, если допустимо.
     
    TeslaFeo нравится это.
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    оказывается в XML всего 5 недопустимых символов < > & " '
    можно и через str_replace сделать)

    я как всегда) создал тему и сам нашел)
    а сколько еще тем были почти созданы и не созданы в итоге)
     
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    вернемся к этой теме когда ты сталкнешься с китайскими иероглифами в xml )
     
    #5 Dmitriy A. Arteshuk, 30 янв 2018
    Последнее редактирование: 30 янв 2018
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    в этом проекте не должен)
     
  7. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    спасибо Фэл, твой способ помог.
    Только приведенная тобой функция - аналогия htmlspecialchars, только превращает в сущности всё, что может.
    Ты имел в виду html_entity_decode(). :)
     
  8. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    @Dmitriy A. Arteshuk твой способ не пробовал ибо очкую, что пхпшный парсер съест лишнего)
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Да, пардонте.