2013-10-13 2 views
1

Утро,Линейные окончания в виде textarea

Когда вы отправляете форму с текстовым полем, какие окончания строки используются? \ r \ n, \ n или как локальные файлы зависит от ОС?

Я пытаюсь найти спецификацию RFC или W3C или что-то в этом роде, или она отличается от ОС/браузера? У вас есть ссылка?

например

<textarea name="message">This is 
my 
message 
</textarea> 

Будет ли

This is\r\n 
my\r\n 
message\r\n 

или

This is\n 
my\n 
message\n 

и это стандарт или отличаться в зависимости от браузера/ОС. Доказательство?

Я не беспокоюсь о содержимом textarea перед его отправкой на сервер, но фактическое содержимое переменной на стороне PHP/сервера.

+0

Когда он хранится в БД, мне нужно, чтобы он был последовательным, поэтому, если пользователь в окнах с IE сохраняет что-то, он должен иметь те же окончания строк, что и Linux с FireFox. Я знаю, что локально существуют разные окончания строк, но когда вы отправляете форму, окончание строк в текстовом поле одинаково, я считаю - я просто не могу найти спецификацию/стандарт для этого. – Wizzard

+0

Просто у вас был проект и содержимое текстового поля во всех браузерах (от IE7 до Chrome до FF и Safari) по всей ОС (Win XP - Win 8, Mac OS 10.5 - 10.9), так же не делали что-то особенное. Использование jQuery для отправки асинхронно (я сомневаюсь, что есть какая-то магия) и MySQL как механизм БД с 'utf8_unicode_ci' как сортировка столбцов. Мы сохраняем контент без изменений и записываем его обратно в текстовое поле по запросу. Никаких проблем до сих пор. ;-) – nietonfir

ответ

2

Эта информация может быть найдена в спецификации HTML5. В нем говорится, что для элемента textarea:

... есть значение представления формы. Он нормализуется, так что строка использует разрывы символов U + 000D CARRIAGE RETURN «CRLF» (U + 000A) и , кроме того, при необходимости с учетом атрибута обертывания элемента добавляются дополнительные разрывы строк для обертывания текста на данный ширина.

значение элемента определяется как исходное значение элемента с следующим преобразованием применяется:

Заменить каждое вхождение «CR» (U + 000D) символ не следует «LF» (U + 000A), и каждое появление символа «LF» (U + 000A) , которому предшествует символ «CR» (U + 000D), двухсимвольной строкой, состоящей из U + 000D CARRIAGE RETURN «CRLF " (U + 000A) знак пара.

Если атрибут Оберните элемента находится в тяжелом состоянии, вставьте U + 000D возврат каретки «CRLF» (U + 000A) символов пар в строке , используя UA определенный алгоритм так, что каждая строка имеет не более символы символов.Для целей этого требования строки разделены на начало строки, конец строки, и U + 000D CARRIAGE RETURN «CRLF» (U + 000A).

0

вы получите простой текст - если и нужно добавить <br> тегов можно использовать http://php.net/manual/en/function.nl2br.php =)

Я извиняюсь, если я не понимаю ваш вопрос - не вниз голосовать меня: \

EDIT: это, вероятно, \ N, потому что, когда и дамп это вернуть текст построчно, как при использовании echo "something\nsomething";

+0

Да, это будет обычный текст, но когда он будет сохранен в БД, это будет \ n или \ r \ n? Нужно что-то большее, чем, наверное, извините :) – Wizzard

+0

Хорошо, я просто попытался помочь :) – Northys

1

по HTML specs, разрыв линии представлен как CR LF. В формате данных по умолчанию в представлении формы он представляется кодированным как %0D%0A. (Это не зависит от операционной системы и ее условных ограничений на конец строки.) Ваш серверный код будет отбирать ее оттуда. В PHP вы увидите его как \r\n.

Смежные вопросы