적용 샘플은 http://pin.readiz.com/ 에서 확인하실 수 있습니다. 심심하신 분들은 접속해서 사용해보세요. 아직 개발중인 페이지라 별다른 건 없지만 적용예제를 확인해보실 수 있습니다.
자동줄바꿈 함수
사실 이 문제를 해결하기는 했지만 str_replace가 왜 적용이 안되는지 모르겠습니다. 일단 <BR>태그를 삽입하는 것은 이론은 간단하죠. \n줄바꿈 문자를 <br>태그로 치환하면 되는 겁니다. 하지만 PHP에는 이미 전용 함수가 있기 때문에 이를 쓰면 됩니다.
nl2br라는 함수가 바로 그 함수인데요, reference를 보면,
Description ¶
$string
[, bool $is_xhtml
= true ] )Returns string
with '<br />' or '<br>' inserted before all newlines (\r\n, \n\r, \n and \r).
그저 문자열을 넘기면, <br>태그를 붙여서 문자열을 반환해줍니다. 아래와 같이 사용하시면 됩니다.
$body = nl2br($body);
근데 아래 코드는 안되더라구요. 혹시 되시는 분들은 좀 알려주세요..
str_replace("\n", "<br/>", $body);
자동링크감지 코드
자동링크감지는 preg_replace라는 함수를 사용합니다. 정규표현식을 이용해서 특정한 문자열세트를 링크를 거는 태그를 추가해서 바꿔버리는건데요, 역시 정규표현식의 간결함을 느낄 수 있는 코드입니다.
Description ¶
$pattern
, mixed $replacement
, mixed $subject
[, int $limit
= -1 [, int &$count
]] )Searches subject
for matches to pattern
and replaces them with replacement
.
사실 직접 만들기는 좀 난이도가 있어요. 정규표현식을 공부한 사람들도 실수를 하곤 하니까요.. 워낙 예측하기가 힘든 함수기 때문에 만들어진 것을 사용하는걸 추천드립니다. 아래 코드를 쓰시면 됩니다. http:// 랑 ftp://, https://를 탐지, 감지하는 코드입니다.
$body = preg_replace('/((http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?)/', '<a href="\1">\1</a>', $body);
만약 http, ftp, https 말고 다른 것도 감지하려면 (mms라던지) 맨 앞부분을 수정하면 됩니다. http|ftp|https|mms 이런식으로 말이죠.
'Creation > Programming' 카테고리의 다른 글
Bitonic Sort in Distributed Parallel Computer System (1) | 2014.03.21 |
---|---|
쓸만한 웹 HTML 에디터, widgEditor (3) | 2014.01.18 |
[Converter] Hex, Base64를 Plain Text(텍스트)로 변환해주는 사이트 (1) | 2014.01.17 |
[Javascript] 창크기 변화를 감지해서 애드센스(Adsense) 광고 옮기기 (27) | 2014.01.12 |
[정규표현식이란?] 정규표현식을 공부해보고 테스트 할 수 있는 사이트 (0) | 2014.01.11 |
[PHP] Array_map 함수 : 배열 한번에 다루기 (2) | 2014.01.05 |
유니코드에 대한 글 / 유니코드 <-> HTML 변환기 (0) | 2014.01.02 |
[PHP] 접속 도메인에 따라 같은 IP주소로 연결해도 다른 페이지 보여주기 (1) | 2013.11.26 |
[Web Application] PHP를 이용한 Web Application 제작의 4단계 (0) | 2013.11.11 |
[Chrome] 마우스 오른쪽 버튼 제한 해제하기 (0) | 2013.11.07 |