В 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 строки выше?
Как было предложено в комментариях , такая проблема, как правило, связана с тем, что в одиночных кавычках :
Чтобы указать буквенную одинарную цитату, сбегите ее с помощью обратного слэша (\). Чтобы указать буквальную обратную косую черту, удвойте ее (\\).
Все остальные экземпляры обратной косой черты будут рассматриваться как буквальная обратная косая черта: это означает, что другие 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);