웹마스터 팁
page_full_width">
정규표현식 쓰지 않고 자동링크하기!! 한글주소까지 문제없슴돠~~!!
2002.11.05 23:01
제가 게시판을 만들고 있는데요...이제 거의 다되어 갑니다.
제 목표는 제로보드의 아성에 도전하는 것인데요..
아무래도 치밀함 면에서는 아직 많이 뒤떨어지지만 어느정도는 다 되어 갑니다.
자동링크기능을 저 나름대로 만들어 보았습니다.
원리는,
한줄 단위로 분리하고, 또 그 줄을 공백문자로 분리하고,
마지막으로 http://라는 문자를 포함하고 있는지를 알아내어 링크로 만드는 것이지요..
정규표현식이라는 것을 아직 완벽히 모르기때문도 있지만, php에서의 정규표현식이 한글은 지원하지 않는다고 알고 있기에
한글주소까지 지원하기 위해서 이런 방식을 썼습니다.
자, 이제 한번 볼까요?
//<---------------자동링크기능
$text=explode("rn",$content);//$text배열로 나누어줌-(줄단위로)
$content="";//초기화
foreach($text as $value){
if(count(explode("http://",$value))>1){//그 줄이 http://를 포함하고 있다면 좀더 자세히 들어가자~
$new2=explode(" ",$value);//공백문자단위로 끊어주고,
foreach($new2 as $value2){
if(count(explode("http://",$value2))>1) $content.=" <a href='$value2' target=_blank>$value2</a>";//그 단위에 http://를 포함하면,링크를 걸어준다.
else $content.=" ".$value2;//아니면 그냥 공백문자와 함께 합쳐주고..
}
}else $content.="rn".$value;//줄 단위로 끊은것은 라인피드문자와 함께 합쳐준다.
}
unset($new);
unset($new2);
unset($text);//메모리 비워줌.
//>
간단하죠?^^;; 이 원리를 이용하면 파일내의 색인기능도 구현할 수 있습니다.
밑에 제가 올린 함수 찾아주는 소스도 이와 같은 맥락입니다.~^^
제 목표는 제로보드의 아성에 도전하는 것인데요..
아무래도 치밀함 면에서는 아직 많이 뒤떨어지지만 어느정도는 다 되어 갑니다.
자동링크기능을 저 나름대로 만들어 보았습니다.
원리는,
한줄 단위로 분리하고, 또 그 줄을 공백문자로 분리하고,
마지막으로 http://라는 문자를 포함하고 있는지를 알아내어 링크로 만드는 것이지요..
정규표현식이라는 것을 아직 완벽히 모르기때문도 있지만, php에서의 정규표현식이 한글은 지원하지 않는다고 알고 있기에
한글주소까지 지원하기 위해서 이런 방식을 썼습니다.
자, 이제 한번 볼까요?
//<---------------자동링크기능
$text=explode("rn",$content);//$text배열로 나누어줌-(줄단위로)
$content="";//초기화
foreach($text as $value){
if(count(explode("http://",$value))>1){//그 줄이 http://를 포함하고 있다면 좀더 자세히 들어가자~
$new2=explode(" ",$value);//공백문자단위로 끊어주고,
foreach($new2 as $value2){
if(count(explode("http://",$value2))>1) $content.=" <a href='$value2' target=_blank>$value2</a>";//그 단위에 http://를 포함하면,링크를 걸어준다.
else $content.=" ".$value2;//아니면 그냥 공백문자와 함께 합쳐주고..
}
}else $content.="rn".$value;//줄 단위로 끊은것은 라인피드문자와 함께 합쳐준다.
}
unset($new);
unset($new2);
unset($text);//메모리 비워줌.
//>
간단하죠?^^;; 이 원리를 이용하면 파일내의 색인기능도 구현할 수 있습니다.
밑에 제가 올린 함수 찾아주는 소스도 이와 같은 맥락입니다.~^^
댓글 6
-
[문(서]류)
2002.11.06 01:04
-
우트라
2002.11.11 00:10
그건 어쩔 수 없지 않을까요..? 마침 문자를 따로 지정하지 않는 한은요..
어딘가 있는 정규표현식에 의한 것도 그건 어쩔 수 없지 싶네요.
하지만 공백문자는 %20 이라고 치환해 줄순 있지요..^^ -
靑色糖™
2002.11.13 13:50
문서류//저도 어려울 것 같아 보입니다...
어떤 사람은 띄우고 계속 주소를 입력하려하고,
어떤 사람은 링크를 중단하고 글에 다시 들어가려 하니까요...
우트라님 처럼 http://www.nzeo.com/나의%20친구.jpg으로 하면 될 것 같군요..
(그런데 이 점은 글쓰는 사람이 따로 입력해야 한다는 점이...) -
안현민
2002.11.15 10:54
전 아무것도 모르는 학생이지만..'ㅡ';;
http://www.nzeo.com/나의친구.jpg 로 링크를 걸었을때
글에서 http 로 시작하고 .확장자 로 끝나는 문장을 검색해서
그안에 공백이 있을경우 %20 으로 처음부터 바꿔서 DB에 저장시키면..
'ㅡ'a 안되는건가;; 죄송 ㅠ_ㅠ; -
mStorm
2002.11.29 01:23
-
Yuki-H.
2003.02.01 02:32
정규 표현식이 오히려 처리면에서 더 빠를건데요...;;;
하지만 주소 중에 공백 (ex : http://www.nzeo.com/나의친구.jpg 라고 하면 문제가 생길 듯...