2013-03-13

\n의 처리: nl2br

지금 하고 있는 것이 주로 문자열을 다루다 보니, 이걸 적당한 형태로 읽어들이고 (parsing) 쪼개고 잇고 하는 작업을 많이 하게 된다. 특히 웹 문서를 읽어온다던가 하면 여러가지 문제가 생기는데 예를 들면 외국어 문제 (encoding), 특수기호 처리, HTML tag 처리 등이다.

php는 이런 작업들을 처리하기 위한 함수가 마련되어 있어서 잘 처리하면서 살아왔다. Encoding이야 지정하면 되고 HTML tag들은 strip_tags() 함수를 사용하면 잘 처리되는데, 이 특수기호가 문제다. 말이 되게 만들어놓고자 하니 stopwords 정의를 통해 웬만큼 처리가 되는데 최근까지 가장 힘들었다고 느꼈던 것이 개행문자(\n)의 처리다.

Xml 형태로 저장한 문자열을 string으로 읽어들이면 개행문자가 분명이 존재하는데 stopwords 지정 필터링이 되질 않는다. 당연한 듯한 이 문제를 최근에서야 풀게 되었는데 좀 돌아가는 방법이다. 일단 읽이들인 string에서 개행문자를 HTML tag인<br />로 바꾸어주는 nl2br() 함수를 이용하고, 그 다음에 strip_tags() 함수를 이용해서 제거해주는 거다.

너무 무식을 티내나, 나만 모르나... 아무튼 사후 참고를 위해.

No comments:

Post a Comment