Используйте PHP для поддержания формата текстовой области

#php #forms #richtextbox

#php #формы #richtextbox

Вопрос:

Привет,

Можно поддерживать формат текстовой области с помощью PHP form, чтобы сообщение, отправляемое по почте администратору, было отформатировано надлежащим образом.

ie. Если кто-то пишет в текстовой области,

Уважаемый сэр,

Я пишу в connceti….

Большое спасибо,

На данный момент это электронное письмо как

Уважаемый сэр, я пишу в connceti… Большое спасибо,

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

Есть идеи,

Чудесный

Комментарии:

1. Вы отправляете электронное письмо в виде текста или в формате html? Если ваше электронное письмо имеет формат html, то вам необходимо преобразовать новые строки в тег <br/> с помощью ln2br(), прежде чем помещать текст в электронное письмо.

2. Если вам нужно сохранить только правильные строки, вы можете попробовать nl2br . Вам также следует взглянуть на @ отправка электронной почты в формате HTML , поскольку это обязательно понадобится, если вы планируете использовать Rich Text Editor

3. Взрыв, простой ответ. Я установил для него тип содержимого: html.. Все исправлено

Ответ №1:

Возможно, вам потребуется заменить (в зависимости от системы):

 nr   or   n   or   r 
  

Автор::

 <br />
  

Требуется функция PHP:

 nl2br()
  

Комментарии:

1. Единственная проблема с этим заключается в том, что вам нужно будет вручную добавлять » n» перед каждым переносом строки, чтобы ln2br () работал. 🙁

2. Нет, n или r или nr просто представляет разрыв строки в обычном тексте. Проверьте объяснение от JohnP. Не нужно ничего вставлять.

3. На самом деле это должно быть nl2br() не ln2br()

Ответ №2:

На данный момент кажется, что ваши электронные письма могут быть отправлены в формате HTML. Формат HTML автоматически удаляет разрывы строк, если заданный ввод не в формате HTML. Если вы не хотите форматировать HTML, попробуйте отправить сообщение обычным текстом, тогда ваши разрывы строк все равно должны отображаться.

Чтобы отправить сообщение в виде обычного текста, просто используйте функцию PHP mail (), без каких-либо дополнительных заголовков:

 mail('john@gmail.com', 'Test Email', 'My Message...

with a line break!');
  

Если у вас все еще возникают проблемы, попробуйте интегрировать HTML-редактор WYSIWYG, такой как мощный редактор TinyMCE.

Примечание: чтобы редактор HTML мог правильно отправлять электронные письма, вам нужно будет отправлять электронные письма в формате HTML (где вам нужно будет указывать заголовки в качестве четвертого параметра в функции mail()).). Это наверняка решит ваши проблемы с переносом строк.

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

Ответ №3:

Новые строки в <textarea> сохраняются как браузером, так и PHP. Возможно, они теряются в самом теле письма или просто не отображаются браузером, даже если они там есть.

Если вы отправляете HTML-сообщение, вам нужно nl2br(htmlspecialchars($your_textarea_data)) добавить необходимые <br> теги.

Если вы отправляете обычное текстовое сообщение, проверьте, не смешиваете ли вы последовательности перевода строки LF (в стиле Unix) и CR LF (в стиле DOS), которые могут сбивать с толку ваш почтовый клиент.

Ответ №4:

Это зависит исключительно от формата вашей электронной почты.

Когда вы вводите этот текст, он на самом деле выглядит так

 Dear Sir, n
n
I am writing in connceti....n
n
Many Thanks,
  

Если вы отправляете текстовое сообщение, вы должны убедиться, что строки не удалены. И если вы отправляете электронное письмо в формате HTML, вы должны убедиться, что вы заменили эти разрывы строк на <br> теги