Как сохранить текстовую строку с разрывами строк в текстовое поле базы данных MySQL с помощью PHP?

В SugarCRM у меня есть поле Textarea, в котором я пытаюсь сохранить данные с разрывами строк.

ЕСЛИ я вставляю теги, затем они отображаются как теги разрыва текста. Если я попробую что-то вроде \n оно также будет отображаться как текст.

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

Я пытаюсь сохранить данные с разрывами строк в том же поле из удаленного сценария API.

Я зашел в базу данных с phpMyAdmin, чтобы посмотреть, как выглядит поле, и вот оно …

Первые 3 строки имеют правильные разрывы строк, которые я сделал внутри SugarCRM, редактируя запись вручную.

Строка из моего удаленного API-скрипта, где я сохранил теги в строке.

 Line 1 Text: ghfghdf Line 1 Color: #0064FF Line 1 Font: Architect Line 2 Text: fghfg<br /> Line 2 Color: #9F00FF<br /> Line 2 Font: Belshaw<br /> Line 3 Text: fghdhdhdf<br /> Line 3 Color: #FF5000<br /> Line 3 Font: Benguiat<br /> 

Любые идеи, как я могу сделать свой PHP-код, сохранить строку в этом поле и иметь разрывы строк при просмотре в базе данных, как и первые 3 строки выше?

Solutions Collecting From Web of "Как сохранить текстовую строку с разрывами строк в текстовое поле базы данных MySQL с помощью PHP?"

Как было предложено в комментариях , такая проблема, как правило, связана с тем, что в одиночных кавычках :

Чтобы указать буквенную одинарную цитату, сбегите ее с помощью обратного слэша (\). Чтобы указать буквальную обратную косую черту, удвойте ее (\\).

Все остальные экземпляры обратной косой черты будут рассматриваться как буквальная обратная косая черта: это означает, что другие escape-последовательности, к которым вы могли бы привыкнуть, такие как \ r или \ n , будут выводиться буквально, как указано, а не иметь какое-либо особое значение.

но в двойных кавычках :

PHP будет интерпретировать больше escape-последовательностей для специальных символов

sequence: \ n, затем имея значение строки перевода (LF или 0x0A (10) в ASCII)

Таким образом, echo '\n' будет печатать \ n, в то время как echo "\n" позволит вам иметь новую строку как исключенную.

И, конечно же, вы также можете использовать PHP_EOL чтобы сделать его перекрестной ОС.

При попытке сохранить данные с разрывами строк вы хотите использовать функцию nl2br () внутри php, прежде чем хранить данные. У меня были те же проблемы до и после нескольких месяцев и месяцев, пытаясь по-разному заставить его работать прямо на сайте клиента, именно на SO я нашел ответ в один прекрасный день.

Ключ состоит в том, чтобы преобразовать данные с помощью nl2br () перед его сохранением.

Надеюсь это поможет.

Используйте PHP_EOL вместо <br/ или \n

например

 $array = array("a","b"); $string = implode(PHP_EOL , $array);