2012-10-26 4 views
0

사용자가 데이터베이스에 뉴스를 삽입하기 위해 BBCode 및 HTML 코드를 모두 사용할 수있는 텍스트 영역이 있습니다. 이 뉴스를 사이트에 표시하려면 PHP 스크립트가 BBCode를 HTML 엔터티로 변환하고 HTML 태그를 보존하는 HTML 표준의 뉴스 콘텐츠 (데이터베이스에서 가져 오기)를 변환합니다.BBCode 및 HTML 코드가있는 텍스트 영역의 nl2br()

<li>Some text</li><br /> 

또는

<table><br /> 
<tr><br /> 
etc. 

거기인가 : 나는 nl2br() 기능 <br /> 태그로 줄 바꿈을 변환 할 때 <br /> 예를 들어, 너무 HTML 태그 다음에 추가되기 때문에 문제는, 이 성가신 문제를 피하는 방법?

+1

사용자가 자신의 HTML을'[html] [/ html]'에 넣으라고 생각 했습니까? – pebbo

답변

1

정규식에 대해 생각하고 있습니다. 이것은 텍스트가 <p></p>으로 분리되지 않은 경우에만 작동해야합니다 (제 의견으로는 조금 나아질 것입니다). 언급 한 바와 같이

$formattedText = preg_replace("/(<[a-zA-Z0-9=\"\/\ ]+>)<br\ \/>/", "$1", nl2br($text)); 

, 다른 옵션은 특정 태그 내부에 텍스트를보고, 주위 <p> 태그를 포장하는 것입니다.

+0

오, 멋지 네요. :) "#", ":"등과 같이 HTML 태그에 나타날 수있는 다른 문자를 추가했습니다. 대단히 감사합니다! – Andres7X