Php заменить переводы строк

Php заменить переводы строк

Выведет — «бла бла и ещё раз бла»

Как сохранить форматирование?
Извините если дублирую тему (искал но не нашёл)

Advanced Member Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

бла 
бла
и ещё раз бла

??

Цитата:

«\r\n»

,
Цитата:

«\n»

тогда уже что-то вроде
Код:

$text = str_replace(«\r\n»,»\n»,$text);
$text = str_replace(«\r»,»\n»,$text);
$text = str_replace(«\n\n», ‘

‘,$text);
$text = str_replace(«\n», ‘
‘,$text);

чтоб одинаково работало для win, linux и mac и заменяло двойные переводы строк не на
, а на параграфы

\r\n — конец строки в win
\n — конец строки в unix
\r — конец строки в mac

Цитата:

разве не eregi

а зачем использовать замену по регулярным выражениям, если можно обойтись без неё?

—-
Но так не идет код — пропускает хтмл и бла бла бла. =(
—-

Одно дело пропускать и заменять символы html на их жквиваленты . а другое дело воспринимать как html .

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: Форматирование текста (замена символов конца строки)

Реклама на форуме Ru.Board.

Powered by Ikonboard «v2.1.7b» © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2023

Источник

nl2br

Возвращает строку string , в которой перед каждым переводом строки ( \r\n , \n\r , \n и \r ) вставлен
или
.

Список параметров

Использовать ли совместимые с XHTML переводы строк или нет.

Возвращаемые значения

Возвращает изменённую строку.

Примеры

Пример #1 Пример использования nl2br()

Результат выполнения данного примера:

Пример #2 Генерирование корректной HTML-вёрстки с помощью параметра use_xhtml

Результат выполнения данного примера:

Привет! 
Этой мой HTML-документ

Пример #3 Различные разделители строк

Результат выполнения данного примера:

Смотрите также

  • htmlspecialchars() — Преобразует специальные символы в HTML-сущности
  • htmlentities() — Преобразует все возможные символы в соответствующие HTML-сущности
  • wordwrap() — Переносит строку по указанному количеству символов
  • str_replace() — Заменяет все вхождения строки поиска на строку замены

User Contributed Notes 17 notes

It’s important to remember that this function does NOT replace newlines with
tags. Rather, it inserts a
tag before each newline, but it still preserves the newlines themselves! This caused problems for me regarding a function I was writing — I forgot the newlines were still being preserved.

If you don’t want newlines, do:

to replace all linebreaks to

the best solution (IMO) is:

function nl2br2 ( $string ) <
$string = str_replace (array( «\r\n» , «\r» , «\n» ), «
» , $string );
return $string ;
>
?>

because each OS have different ASCII chars for linebreak:
windows = \r\n
unix = \n
mac = \r

/**
* Convert BR tags to nl
*
* @param string The string to convert
* @return string The converted string
*/
function br2nl ( $string )
return preg_replace ( ‘/\/i’ , «\n» , $string );
>
?>

Enjoy

Starting from PHP 4.3.10 and PHP 5.0.2, this should be the most correct way to replace
and
tags with newlines and carriage returns.
/**
* Convert BR tags to newlines and carriage returns.
*
* @param string The string to convert
* @return string The converted string
*/
function br2nl ( $string )
return preg_replace ( ‘/\/i’ , PHP_EOL , $string );
>
?>
(Please note this is a minor edit of this function: http://php.net/nl2br#86678 )

You might also want to be «platform specific», and therefore this function might be of some help:
/**
* Convert BR tags to newlines and carriage returns.
*
* @param string The string to convert
* @param string The string to use as line separator
* @return string The converted string
*/
function br2nl ( $string , $separator = PHP_EOL )
$separator = in_array ( $separator , array( «\n» , «\r» , «\r\n» , «\n\r» , chr ( 30 ), chr ( 155 ), PHP_EOL )) ? $separator : PHP_EOL ; // Checks if provided $separator is valid.
return preg_replace ( ‘/\/i’ , $separator , $string );
>
?>

double quotes !== single quotes

Seeing all these suggestions on a br2nl function, I can also see that neither would work with a sloppy written html line break.. Users can’t be trusted to write good code, we know that, and mixing case isn’t too uncommon.

I think this little snippet would do most tricks, both XHTML style and HTML, even mixed case like and even
or
.

This is example with «\R» regex token which matches any unicode newline character.
«u» flag treate strings as UTF-16. Which is optional, depending on your use case.

public function nl2br ( $string )
return preg_replace ( ‘/\R/u’ , ‘
‘ , $string );
>

?>

NOTE:
preg_replace versions are much slower than using str_replace version or built-in nl2br.
Check out pcre.backtrack_limit php.ini setting for information about PCRE limit. It’s good to know.

function nl2br_str ( $string ) return str_replace ([ «\r\n» , «\r» , «\n» ], ‘
‘ , $string );
>

function nl2br_preg_R ( $string )
return preg_replace ( ‘/\R/u’ , ‘
‘ , $string );
>

function nl2br_preg_rnnr ( $string )
return preg_replace ( ‘/(\r\n|\n|\r)/’ , ‘
‘ , $string );
>

?>

# nl2br
## Time: 0.02895712852478 s

# nl2br_str
## Time: 0.027923107147217 s

# nl2br_preg_R
## Time: 0.13350105285645 s

# nl2br_preg_rnnr
## Time: 0.14213299751282 s

Источник

Переносы строк и тег BR в PHP

В PHP за перенос текста отвечают управляющие символы \r (возврат каретки) и \n (перевод строки), причем в разных операционных системах (на которых работает сервер) они применяются в разных комбинациях:

Поэтому в место распространенного \r\n рекомендуется использовать константу PHP_EOL для кроссплатформенности кода.

Замена переносов строк на BR

С помощью функции str_replace() :

$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper. Sed porta justo sed nibh elementum condimentum."; $text = str_replace(PHP_EOL, '
', $text); echo $text;

Результат:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.

Функция nl2br() добавляет тег
, но оставляет символы переносов строк.

$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin blandit magna eu tempus ullamcorper. Sed porta justo sed nibh elementum condimentum."; $text = nl2br($text, false); echo $text;

Результат:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Proin blandit magna eu tempus ullamcorper.
Sed porta justo sed nibh elementum condimentum.

Если через функцию nl2br() пропустить текст несколько раз, то количество
с каждым разом будет увеличиваться и получится следующий результат:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Proin blandit magna eu tempus ullamcorper.

Sed porta justo sed nibh elementum condimentum.

Чтобы этого избежать нужно перед вызовом nl2br() применять обратную функцию br2nl() :

function br2nl($text) < return preg_replace('//i', '', $text); >

Удаление лишних тегов

Удаление
в начале строки

$text = '

Тег
в начале строки.'; $text = preg_replace('/^()+/i', '', $text); echo $text;

Результат:

Удаление
в конце строки

$text = 'Тег 
в конце строки.

'; $text = preg_replace('/()+$/i', '', $text); echo $text;

Результат:

Удаление
перед закрывающим тегом

$text = '

Лишний
в конце параграфа. '; $text = preg_replace('/()+([\s+])?()$/i', '$3', $text); echo $text;

Результат:

Еще момент, обычно в WYSIWYG редакторах пустая строка выполняется элементом

 

, следующий код удаляет данные переносы в конце текста.

$text = ' 

Пустые строки в конце текста.

 

 

'; $text = preg_replace('/(

 [\s+]?)+$/i', '', $text); $text = trim($text); echo $text;

Результат:

Пустые строки в конце текста.

Удаление повторяющихся

$text = 'Текст

с

множеством

переносовстрок.'; $text = preg_replace('/()/i', '
', $text); echo $text;

Результат:

Текст
с
множеством
переносов
строк.

Источник

Замена переноса строк(не \n символ) на br

Имеется

текст текст текст текст текст текст текст текст»); //Это выбивает ошибку JS
Нужно: myfunction(«текст текст текст текст

текст текст текст текст текст текст текст текст»); //Так будет работать.
Нужно решение на PHP или JS ну или может это в самом mysql можно задать.

Замена в поле переноса строки на текстовый символ
Сорри за тупой вопрос, но для меня он горячо актуален: Как заменить в текстовом поле перенос.

Символ переноса в Excel (Как заменить символ на перенос строки)
Решил подсобить всем кто будет гуглить: Как заменить символ на перенос строки в Excel (ALT+Enter).

Символ переноса на другую строчку или символ enter
Здравствуйте. Имеем: Текстовый документ, в нем строчки, в каждой строчке по одному слову. .

Появляется символ переноса
Приветствую. Я через админку, на страницу добавляю примерно такой код: <tr ><td.

mb_ereg_rerplace('\n', '
'
, 'текст с переносом строки');

Vas-e-na, не помогло, он не заменил на брки, видать потому что там не \n-ки стоят, а просто сами переносы, без \n-ок.

Источник

Читайте также:  Methods that create objects java
Оцените статью