2013-11-15 9 views
0

일반적으로 나는 nl2br()을 사용하며 텍스트 영역에 입력 된 것처럼 표시되지만, 바코드를 사용하거나 <code> 또는 <pre> 태그에 코드를 올릴 때 문제가 발생합니다. 줄 바꿈이 추가되기 때문입니다. 예를 들어PHP 블로그에서 텍스트와 코드를 구문 분석하는 가장 좋은 방법은 무엇입니까?

이 코드

[sub-title]test[/sub-title] 

some text here. 

내가 브라우저에 표시 때처럼 그것을 싶지만 [sub-title]<div class="sub-title">이되고 있기 때문에 (같이 표시됩니다 있도록 <br />는, 여분의 줄 바꿈을 추가 이 라인은 내가 아직 완전히 그것으로보고하지 않은

**test** 


some text here. 

) 사이에서 중단하지만, PHP의 BBCode는 파서 도움, 또는 유일한/최선의 해결책은 정규식을 사용하는 수에?

+1

이 사업부 디스플레이 할 수 있습니다 : 인라인; 그러면 당신은 이미 그것을하고있는 방식대로 계속 할 수 있습니다. – skrilled

+0

bbcode 파서를 사용하십시오. 정규 표현식에서 정규 표현식을 벗어나는 완전한 언어 정의를 작성하면이 구문을 사용하십시오. – abc123

+0

감사합니다. 유일한 문제는 내가 디스플레이 할 때이다 : 인라인; 아래쪽 여백을 제어 할 수 없습니다. – cantsay

답변

1

당신은 nl2br()

$message = nl2br(preg_replace('#(\\]{1})(\\s?)\\n#Usi', ']', stripslashes($message))); 
+0

감사합니다. 그래도 그 일을 설명 할 수 있니? 아이디어는 있지만 #은 확실하지 않습니다. – cantsay