Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Нужно заменить Enter на <br>
 
 автор: Indemion   (07.11.2006 в 16:04)   письмо автору
 
 

Подскажите, пожалуйста, где можно посмотреть таблицу спецсимволов.
Например, код соответствующий возврату каретки. Как будет выглядеть функция, так:

<?php
$main 
preg_replace("/код/""<br>"$_POST['main']);
?>


UPD: Можно и при помощи str_replace, но нужен код :)

   
 
 автор: ЯR   (07.11.2006 в 16:40)   письмо автору
 
   для: Indemion   (07.11.2006 в 16:04)
 

> Например, код соответствующий возврату каретки
\r, обрыв строки -- \n

> UPD: Можно и при помощи str_replace, но нужен код :)

<?php
$main 
nl2br($_POST['main']);
?>

   
 
 автор: Indemion   (07.11.2006 в 16:57)   письмо автору
 
   для: ЯR   (07.11.2006 в 16:40)
 

Спасибо.
Можно чуть подробнее?
Поглядел в инете и увидел, как \r\n используют вместе. Пока не могу понять разницы. И смысл. /r = <BR>, а /n - в чем его смысл?

   
 
 автор: cheops   (07.11.2006 в 17:01)   письмо автору
 
   для: Indemion   (07.11.2006 в 16:57)
 

В Windows перевод строки обозначается двумя символами \r\n, в UNIX одним \n в Macintosh - \n\r. Сейчас отдельные символы в последовательности не несут сокраментального смысла, просто перевод строки. \r - это раньше был возврат валика (каретки) в начало строки на принтере или телетайпе (мониторов не было - выводили всё на бумагу), а символ \n - проворачивал валик на новую строку.

   
 
 автор: Indemion   (07.11.2006 в 17:18)   письмо автору
 
   для: cheops   (07.11.2006 в 17:01)
 

Спасибо большое :)
У еще вопросы.
1. Почему <br /> а не <br>?
2. А как совершить обратный переход от <br /> к /n
Т.е. я ввожу новость на сайт, и в БД у меня записывается информация с <br />. На выводе всё ок. А когда редактирую информацию, всплывает тэг. Заменять его обратно на /n?

Попробовал так: $main = str_replace("<br />", "", $row['main']);
Работает, но не могу понять почему? Ведь конца строки не существует после замены...

   
 
 автор: cheops   (07.11.2006 в 22:20)   письмо автору
 
   для: Indemion   (07.11.2006 в 17:18)
 

>1. Почему <br /> а не <br>?
Это веяния XHTML: каждый тэг, который не имеет завершающий тэг долже перед завершением писать /> вместо >. Т.е. правильно писать <br /> и все машинные обработчики так и пишут, а людям лень - они привыкли <br> писать, так как мало написать <br/> нужно ещё и пробел поставить <br /> в общем все (ну или по крайней мере большинство) ленятся.
>Попробовал так: $main = str_replace("<br />", "", $row['main']);
Следует писать так
<?php
$main 
str_replace("<br />""\r\n"$row['main']);
?>

   
 
 автор: indemion   (07.11.2006 в 23:41)   письмо автору
 
   для: cheops   (07.11.2006 в 22:20)
 

Не работает. Так функция добавляет еще пару возвратов кареток к концу строк.
Работает, только в случае если <br> заменить на "". Почему - не понимаю :) Пол вечера экспериментировал.

   
 
 автор: Trianon   (08.11.2006 в 12:08)   письмо автору
 
   для: indemion   (07.11.2006 в 23:41)
 

Функция nl2br не заменяет \r\n на <br /> а добавляет <br /> перед \r\n.
\r\n никуда не уходит, и при обратной замене остается в строке.

   
 
 автор: Indemion   (08.11.2006 в 13:22)   письмо автору
 
   для: Trianon   (08.11.2006 в 12:08)
 

Понял. Спасибо всем больше :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования