Использование nl2br с тегами html

Я использую nl2br при отображении некоторой информации, которая где-то сохраняется, но когда используются теги HTML, я не хочу добавлять теги для них.

Например, если я использую

 <table> <th></th> </table> 

он будет преобразован в

 <table><br /> <th></th><br /> </table><br /> 

и это делает много пространств для этой таблицы.

Хо можно разбить теги линий, которые будут добавлены только для другого не HTML-контента?

Благодарю.

Related of "Использование nl2br с тегами html"

Вы можете заменить закрывающие теги и новые строки только закрывающими тегами:

 $str = str_replace('> ', '>', $str); 

У меня была бы такая же проблема,

Я сделал этот код, добавив <br /> в конце каждой строки, за исключением того, что строка завершена тегом html:

 function nl2br_save_html($string) { if(! preg_match("#</.*>#", $string)) // avoid looping if no tags in the string. return nl2br($string); $string = str_replace(array("\r\n", "\r", "\n"), "\n", $string); $lines=explode("\n", $string); $output=''; foreach($lines as $line) { $line = rtrim($line); if(! preg_match("#</?[^/<>]*>$#", $line)) // See if the line finished with has an html opening or closing tag $line .= '<br />'; $output .= $line . "\n"; } return $output; } 

Я думаю, что ваш вопрос неправильный. Если вы печатаете

 <table> <th></th> </table> 

в текстовую область, то независимо от того, что вы делаете, она будет включать <br /> между ними. Потому что это то, что должен делать nl2br .