Как записать неформатированный текст?

Ссылка скопирована
PHP
1 ответ

При записи в базу MySQL текст идет с форматированием. Как убрать это форматирование? Попробовал через регулярку убрать все переносы и пробелы. Попробовал оставить только буквы и цифры и скобки и все знаки, но все равно остаются какие-то тройные пробелы. хотя в регулярке убираю. Как найти что за символы прячутся в этих пробелах?

$message = (preg_replace('/[^a-zA-Zа-яА-Я0-9_ ()- @+:/.s]/iu', '', $v['message'])); $message = (str_replace('(', ' (', $message)); $message = str_replace('  ', ' ', str_replace(array("rn", "r", "n", "t", '  ', '   ', '    ', '     ', '      '), ' ', $message));

$message = (preg_replace('/[^a-zA-Zа-яА-Я0-9_ ()- @+:/.s]/iu', '', $v['message'])); $message = (str_replace('(', ' (', $message)); $message = str_replace(' ', ' ', str_replace(array("rn", "r", "n", "t", ' ', ' ', ' ', ' ', ' '), ' ', $message));

Дополнительно:

Надо не забыть приложить пример этого "форматированного текста"

  • Ипатьев, Как-то так

    ‼️Дата: 25 июля‼️ Москва‼️

  • так а форматирование где?
  • Руслан Федосеев, ну вот же текст с форматированием. Переносы эмодзи. После всего этого у меня получается вот такой текст:

    Дата: 25 июля Москва Отправлять на ватс апп:
    Какой-то непонятный пробел из 3 штук. Хотя по идее его не должно быть.

  • А вот тут все пробелы при добавлении в базу убрались.
    У меня пишут пост в телеграмм канал и все это летит в базу через api, а там все как есть.
  • Можно создать ноду из DOMdocument, вставить туда содержимое как html, и получить свойство $textContent из ноды.
    Иногда прибегаю к помощи к таким объектам как со стороны PHP, так и со стороны JS. Кое-что они могут вычищать в плане форматирования. Попробуйте.
  • У вас в форме для комментария есть вот такая кнопочка: </>
    попробуйте догадаться, как ее использовать
  • И где тут эмодзи?

    preg_replace('/s+/s', ' ', $v['message']) вместо всех этих танцев вприсядку

  • Ипатьев, что за модификатор ] ?
  • Ипатьев, прикольно, посмотрел через комп, эмодзи не видно. Странная штука айпад, но вопрос не в этом. Если открыть страницу https://racheev.ru/test.php там видно пробелы.
  • alexalexes, что-то не догоню как это использовать…
  • Типа такого.
    $dom = new DOMDocument("1.0", "UTF-8"); $dom-&gt;loadHTML("Your content"); echo $dom-&gt;textContent;

    $dom = new DOMDocument("1.0", "UTF-8"); $dom-&gt;loadHTML("Your content"); echo $dom-&gt;textContent;

    Но скорее всего вам не подойдет, эта штука очистит от html-тегов и преобразует html-сущности.

  • эмодзи - это не форматирование. Это просто UNICODE символ.
    Правильную кодировку для поля установите, и правильно с юникодом работайте
  • 1. Из вопроса непонятно при чём тут mysql.
    2. Вообще не очень понятно какой результат вам нужен: в коментах не увидел никакого форматирования тоже.
    3.

    остаются какие-то тройные пробелы.. хотя в регулярке убираю

    Вы её неверно используете

    echo str_replace(['a','b','c'], 'c', 'ab'); // 'cc'

    echo str_replace(['a','b','c'], 'c', 'ab'); // 'cc'

    4. Попробуйте так, может окажется достаточно для вас.

    • 1. Пишу в базу
      2. Нужен результат в одну строку где пробел будет один а не из трех или четырех. И никаких переносов строк https://racheev.ru/test.php тут вывод того что в базу пишется, а ниже то что я с регулярками получаю. Но все равно там пробел не одинарный есть. И никак его не убрать..
    • // после всего $message  = preg_replace('/s+/', ' ', $message );

      // после всего $message = preg_replace('/s+/', ' ', $message );

    • iljaGolubev, спасибо, я там сделал повтор удаления пробелов все заработало.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Максим Павлов Ответ

    Для записи неформатированного текста в HTML можно использовать тег

    , который сохраняет форматирование текста, включая пробелы, переносы строк и другие символы. Это полезно, если вы хотите отобразить код программы или другой текст, сохраняя его оригинальный вид.

    Для записи неформатированного текста в PHP можно использовать следующий синтаксис:

     

    Этот код поможет отобразить ваш PHP код без изменений в его оригинальном виде. Помните, что тег

     сохраняет все пробелы и переносы строк, поэтому ваш текст будет отображаться в точности так, как вы его написали.

    Таким образом, используя тег

    , вы сможете записать неформатированный текст в PHP и отобразить его на вашем веб-сайте с сохранением всех пробелов и переносов строк.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно