Удалите разрывы строк и добавьте теги BR в PHP

У меня есть следующий текст, для которого я хотел бы добавить тэг для каждого абзаца. А также удалите все разрывы строк. Как мне это сделать в PHP? Благодарю.

Так что это –

 This is some text for which I would like to remove the line breaks. And I would also like to place a b> tag after every paragraph. Here is one more paragraph. 

Стало бы это –

 This is some text for which I would like to remove the line breaks.<br/> And I would also like to place a br tag after every paragraph. <br> Here is one more paragraph. 

ПРИМЕЧАНИЕ. Игнорируйте выделение любых букв.

Это тоже должно работать: (хотя и упрощенно)

 $string = str_replace("\n\n", "<br />", $string); $string = str_replace("\n", "", $string); 

Он был протестирован.

Ну, кажется, вы считаете разделитель абзаца, пустую строку. Таким образом, самое простое решение выглядит так:

 $text = str_replace( "\r", "", $text ); // this removes the unwanted \r $lines = explode( "\n", $text ); // split text into lines. $textResult = ""; foreach( $lines AS $line ) { if( trim( $line ) == "" ) $textResult .= "<br />"; $textResult .= " " . $line; } 

Я думаю, что это решает вашу проблему. $textResult будет иметь результат

Либо я что-то пропустил, либо никто не дал самое простое решение – встроенная функция nl2br :

 echo nl2br($string); 

Помните только, что если вы используете чистую строку (а не переменную) как аргумент nl2br , вы должны использовать двойные кавычки, иначе ваши управляющие символы, такие как \n или \r , не будут расширены.

 echo str_replace(array("\n\n", "\n"), array("<br/>", " "), $subject); 

Вышеупомянутое заменяет двойные символы новой строки тегом <br/> и любыми оставленными одними символами новой строки в пространстве (чтобы избежать слов, изначально только разделенных новой строкой, пробегающих друг друга).

У вас возникнет необходимость в обслуживании линий CRLF (окна). что слегка (хотя и не резко) изменит подход.

Это делает это для меня

$string = ereg_replace( "\n", "<br/>", $string);