За последние 24 часа нас посетил 22891 программист и 1239 роботов. Сейчас ищут 699 программистов ...

Вывод html тега в тексте

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

  1. Konstant1n

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

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Привет всем!
    Сохраняю html текст заметки в БД так
    PHP:
    1. entities('<p>Тег <b> выделяет жирным</p>')
    Как мне вывести текст пользователю в виде
    Код (Text):
    1. Тег <b> выделяет жирным
    ?
     
  2. AlexandrS

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

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    1. <code></code>
    2. htmlspecialchars()
    --- Добавлено ---
    Вообще иногда полезно заглядывать в исходный код сайтов. Вот ты ведь написал пост и у тебя здесь на форуме отобразилось так как тебе хочется. Значить нужно посмотреть как оно работает, тут это через преобразование в html-сущности происходит, т.е. через
    1. htmlspecialchars()
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @AlexandrS на форуме wysiwyg а он и б и p сохраняет а обрабатывать хочет на выходе. Так себе решение. Тут лучший совет использовать готовые библиотечки bbcode wysiwyg. Надеюсь это не для пользователей они и script подсунуть могут и ссылок наставить и все что угодно
    --- Добавлено ---
    А вообще мне нравятся решения на подобии draft.js где пост хранится в виде объекта а не в html
     
    AlexandrS нравится это.
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @nospiou, речь вроде не о бибикодах, а о кодировании «чистого» текста.
    --- Добавлено ---
    P.S. Т.е. ТСу нужно не что-то там оформить особым образом, а наоборот не пропустить тэг в исходном виде и представить его в читабельном виде.
    --- Добавлено ---
    Это все приблуды. Хранить в html эффективнее всего, если контент предполагается выводить прежде всего на Web-страницы.
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Спорный вопрос. Сегодня тебе нужно обернуть что то в один тег завтра в другой или сразу в несколько или скрыть определенную часть текста или еще что то. Это полезно для всего. Случай где не только web это само собой. Та даже если веб можно по разному выводить на разных устройствах в зависимости от разрешения от того где используется pwa cordova electron. Да и поиск намного удобнее и уж тем более еластиком. Ну и все остальное...
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @nospiou, спорить не буду, потому что знаю, что отстаиваемый мной способ не самый популярный. Проблема в том, что на твоей стороне в основном будут те, кто реально особо-то и не выбирал. А вот угадай, в чью бы пользу был перевес, если поспрашивать людей, серьезно относящихся к этому выбору.
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @miketomlin Твой подход более устаревший. Для большинства случаев этого хватает. Но если ты выберешь правильную таблетку... Попробуешь тот же next nuxt где каждое изменение тянет за собой другое а то в свою очередь третье вот тогда ты ощутишь тот самый вкус неограниченной свободы...
     
  8. Konstant1n

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

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    а вы как храните html текст в БД?
    --- Добавлено ---
    что такое б и что такое р?
     
  9. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
  10. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Еще раз: ТСу нужна не фильтрация, чистка и т.п.

    @Konstant1n, в строке «<p>Тег <b> выделяет жирным</p>» кодировать <b> лучше заранее, например еще на клиенте, иначе нет формального признака, отличающего тэг p от текста <b>, только всякие исключения, например раз нет у <b> завершающей части, то преобразовать его в текст, но это сложно, а часто невозможно.
     
  11. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @miketomlin Редакторы это делают в том числе. Зачем ему писать свой если уже есть готовые. Тем более с его знаниями. Сейчас тег понадобился потом картинка потом еще что то.
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    P.S. Тэг p откуда берется? Приходит от клиента или добавляется уже на стороне сервера? Если последнее, сначала выполняйте HTML-кодирование, а потом уже добавляйте тэг p и т.п.
    --- Добавлено ---
    Да, я в общем-то это и имел в виду.
    --- Добавлено ---
    ...Лишь бы редактор не смешивал тэги и чистый текст с <b> и т.п., что в общем-то редкость даже при дефолтных настройках.