вычистил базу данных от \r

fx

Guest
вычистил базу данных от \r

Подскажите откуда берётся знак \r ?
понятно что знак \n означает перевод строки на новую строку в коде HTML
а вот откуда взялся \r непонятно

я вычистил базу данных от \r и двойных \n\n маленькая тестовая база данных на 85 kb полегчала до 70 kb

при внесении текста в базу данных поставил код на удаления этих знаков
PHP:
$post = str_replace("\r","",$post);
$post = str_replace("\n\n","\n",$post);
Верно всё или я убрал лишние детали которые нужны?
 

Demiurg

Guest
1. \n не перевед строки в html
2. тебе 15кб - жизнено важны ?
 

fx

Guest
Автор оригинала: Demiurg
1. \n не перевед строки в html
2. тебе 15кб - жизнено важны ?
я имел в виду что \n переводит строчку кода на новую

15 кб не важны, но почему-то меня раздражают эти знаки, тем более бесполезные как я понял, так зачем лишний вес если это мусор, или я не прав?

-~{}~ 28.08.04 23:58:

Автор оригинала: Фанат
знак \r означает возврат каретки в коде HTML
возрат каретки это когда жмёшь на Enter?
так ведь и \n тоже получается когда жмёшь на Enter
только \n переводит строку кода с новой строки, а \r нет
я что-то не могу понять чем эти 2 знака отличаются, и необходим ли \r ?
 

Demiurg

Guest
не прав. Оптимизировать надо только тогда, когда это необъодимо. А юинарное представление перевода строки зависит от операционной системы.
 

fx

Guest
Автор оригинала: Demiurg
не прав. Оптимизировать надо только тогда, когда это необъодимо. А юинарное представление перевода строки зависит от операционной системы.
а на примере (подробнее) можешь сказать чем это может кончится, и почему знак \r тоже необходим, типа в базе данных должно быть именно \r\n но нельзя просто \n ?
я хочу полность раскрыть тему, и понять
извиняюсь за настойчивость но меня это волнует и интересует
 

Фанат

oncle terrible
Команда форума
ничем не может кончиться.
Тебе просто объясняют, что ты не там оптимизируешь.
в HTML, если тебе это не известно, знак перевода строки вообще никак не интерпретируется.
То есть, ты на основе неверных знаний сделал бесполезную работу.
 

Demiurg

Guest
Ты же кладешь в базу текстовые данные ? Зачем спотреть на них как на бинарные ? и зачем заменять 2 переноса строки одним ? переносы строк тоже являются значимыми.
 

fx

Guest
Автор оригинала: Demiurg
Ты же кладешь в базу текстовые данные ? Зачем спотреть на них как на бинарные ? и зачем заменять 2 переноса строки одним ? переносы строк тоже являются значимыми.
2 переноса я заменил одним, так как я когда пишу новое сообщение, то делаю ингда между тегами промежуток в 2 строки чтобы было видно чётко что я пишу типа такого:

<div>Тема</div>

<p>
bla bla bla
</p>

вот я и убираю этим ненужную пустую строчку если забыл это сделать сам :p
 

Фанат

oncle terrible
Команда форума
убирай тогда уж все \n? если ты такой чистюля.
Хотя, конечно же, в твоихскриптах есть сотни косяков и дырок, которые требуют гораздо больше вримания, чем украшение хтмл-а
 

fx

Guest
Автор оригинала: Фанат
убирай тогда уж все \n? если ты такой чистюля.
Хотя, конечно же, в твоихскриптах есть сотни косяков и дырок, которые требуют гораздо больше вримания, чем украшение хтмл-а
\n мне нужен так как я редактирую сообщения, и мне нужно чтобы текст остался в том же порядке, каким я его привык видеть и чтобы в HTML он смотрелся окуратно:
<div>Тема</div>
<p>
bla bla bla
</p>
но а косяки, так это верно, их много и я ими занимаюсь, всё началось с того что я себе хотел поставить клёвый блог, но на www.hotscripts.com очень тяжёлые левые и запутанные блоги, вот я и решил сам себе сделать блог, чтобы был лёгким и быстрым, без лишней ерунды, да и нравится мне PHP - интересный язык :p
 

Фанат

oncle terrible
Команда форума
fx
до тебя может дойти простая мысль, что аккуратность текста будет зависеть от программы, в которой ты будешь его смотреть?
И если ты работаешь под виндой, то ЛУЧШЕ бы тебе "лишний" символ не удалять?

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

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

fx

Guest
Спасибо большое за разьяснение про \r и \n очень вам благодарен что помогли!!!

Фанат , насчёт текста так всё просто я привык видеть текст вот так:
<div>Тема</div>
<p>
bla bla bla
bla bla bla
</p>

но делаю промежуток в 2 строки при написании, забываю её и так и вношу в базу данных с промежутком вот так:
<div>Тема</div>

<p>
bla bla bla
bla bla bla
</p>
а код за меня удаляет ненужную пустую строку :p

я работаю под виндой и все мои посетители 99.9% тоже
 

GoldenOrb

Guest
\r\n - перевод на новую строку в Windows
\n - *NIX
\r - не помню, но тоже есть =)
 

fx

Guest
вот что я нашёл в мануале http://il.php.net/trim

"\n" (ASCII 10 (0x0A)), символ перевода строки.

"\r" (ASCII 13 (0x0D)), символ возврата каретки.


символ перевода строки это понятно - переводит строку на новую,
а вот какую функцию и полезность играет символ возврата каретки не понятно...

но я понял что trim() делает ещё больше чем я зачистил только \r :p

trim() удаляет следующие символы:

" " (ASCII 32 (0x20)), символ пробела.

"\t" (ASCII 9 (0x09)), символ табуляции.

"\n" (ASCII 10 (0x0A)), символ перевода строки.

"\r" (ASCII 13 (0x0D)), символ возврата каретки.

"\0" (ASCII 0 (0x00)), NUL-байт.

"\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.
 

fx

Guest
Автор оригинала: GoldenOrb
поздравляю! эволюция налицо :)
:p спасибки!
из серии: "ламеры делают первые шаги" :p

-~{}~ 29.08.04 04:16:

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

PHP:
$post = trim($post);
$post = str_replace("\r","",$post);
$post = str_replace("\n\n","\n",$post);
$post = str_replace("  "," ",$post);
в результате смотрим базу данных без чистки:
PHP:
'  два пробела до и после  а теперь 2 пробела и 2 перевода строки  \r\n\r\nи ещё 2 перевода строки после\r\n\r\n  '
и после чистки:

PHP:
'два пробела до и после а теперь 2 пробела и 2 перевода строки \nи ещё 2 перевода строки после'
результат налицо:p
 

GoldenOrb

Guest
а можно так:

PHP:
$what = array( "\r", "\n\n", "  " );
$whom = array( "", "\n", " " );
$post = str_replace( $what, $whom, $post );
попробуй, по-моему должно работать =)

или просто:

PHP:
$post = str_replace( array( "\r", "\n\n", "  " ), array( "", "\n", " " ), $post );
проверь, может так лучше? =)

-~{}~ 29.08.04 03:48:

если я не напутал.. вобще читай мануал по функции =)
 

fx

Guest
Да так конечно лучше, особенно последний пример - всё в одной строчке,
но я пока что всё раскладываю по полочкам, чтобы было понятно что к чему, иначе потом запутаюсь в хитром коде :p
 

neko

tеam neko
fx
ты в курсе что перенос при верстке иногда "играет роль" пробела?
например чтобы рисовалась пустая ячейка или не слеплялись какие-то элементы
так что удалять такие вещи надо аккуратно

а насчет символов твоих
я сейчас немогу найти соответствующий rfc
не найдешь сам, позже дам линк

-~{}~ 29.08.04 08:18:

fx
да кстати,
то что ты делаешь -- бред
потому что контролировать замусоренность надо совершенно другими способами
 
Сверху