За последние 24 часа нас посетили 21454 программиста и 1024 робота. Сейчас ищут 703 программиста ...

htmlentities() не заменяет, а удаляет двойные кавычки в html тегах

Тема в разделе "PHP для новичков", создана пользователем Davides, 1 апр 2021.

  1. Davides

    Davides Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    14
    Симпатии:
    0
    Перед добавлением записи в базу данных, пользуюсь в PHP коде преобразованием текста с помощью htmlentities().

    В тексте имеются html теги (например <img src="url_image" alt="alt_text">), в тегах есть атрибуты с двойными кавычками (например src="url_image").

    В PHP коде использую функцию htmlentities() следующим образом: $text = htmlentities($_POST["text"], ENT_COMPAT, "UTF-8");.

    Все символы преобразуются в html сущности правильно, но двойные кавычки вообще удаляются из атрибутов. То есть " должно меняться на &quot;, но вместо этого " просто удаляется.

    В результате возникают трудности с дальнейшим выводом текста на сайте.

    Если кто-то сможет помочь, буду благодарен! Спасибо!
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  3. Davides

    Davides Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    14
    Симпатии:
    0
    Я перечитал эту страницу уже несколько раз, но так и не могу разобраться в чем проблема, по-этому написал сюда.
     
  4. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Попробуйте другие флаги, кодировки. Удостоверьтесь, что двойные кавычки это те какие надо кавычки.
    То, как вы описали, оно себя вести, при правильных установках, не должно.
     
  5. Davides

    Davides Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    14
    Симпатии:
    0
    Проблема решена. Дело было в том, что был подключен файл защиты от SQL инъекций, который автоматически везде убирал кавычки. Всем спасибо.