웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->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
정규 표현식이 오히려 처리면에서 더 빠를건데요...;;;
제목 | 글쓴이 | 날짜 |
---|---|---|
세계 인구 구하기~; [23] | AT4u | 2002.11.16 |
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #3 [10] | 아이쿠 | 2002.11.15 |
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #2 [8] | 아이쿠 | 2002.11.13 |
초보의 초보를위한 강의 PHP를 활용한 페이지 암호걸기 #1 [9] | 아이쿠 | 2002.11.13 |
(GD) 이미지 대칭 축소 함수 [5] | 민이 | 2002.11.08 |
제로보드로 유료 사이트 만들기 (결제 정보 저장) [1] | 한꼬마 | 2002.11.06 |
제로보드로 유료 사이트 만들기 (폼만들기) [3] | 한꼬마 | 2002.11.06 |
정규표현식 쓰지 않고 자동링크하기!! 한글주소까지 문제없슴돠~~!! [6] | 우트라 | 2002.11.05 |
제로보드로 유료 사이트 만들기 (회원 db 수정) 수정 #1 [7] | 한꼬마 | 2002.10.31 |
Freechal.com 과 같은 형태의 아바타를 만들자. [6] | 다솜아빠 | 2002.10.31 |
제로 카운터(zero counter)에서 총 접속자 숫자 조정하기 (Easy 버젼) [13] | 미카엘 | 2002.10.31 |
제로보드로 유료 사이트 만들기 (결제 테이블) [2] | 한꼬마 | 2002.10.30 |
제로보드로 유료 사이트 만들기 (서론) [6] | 한꼬마 | 2002.10.28 |
[출처있음]NZEO 채널 흉내내기 [10] | (' _ ') napclub | 2002.10.28 |
현재 접속자 구하기...(파일2개) | inging-zb41 | 2002.10.26 |
사용자정의 함수 뽑아오는 함수입니다... [4] | 우트라 | 2002.10.23 |
[추천 소스] 특정일로부터 지난날짜 혹은 남은날짜 구하기~ [5] | 박은석 | 2002.10.22 |
[추천 소스] nzeo에 있는 북마크 기능 구현하기(hot key 는 제외) 초허접 강좌 [10] | 정승재 | 2002.10.22 |
이메일 주소 인코딩하기 [7] | 투유 | 2002.10.20 |
Java Applet을 활용한 업로드시 전송률 확인하기.. | 아이쿠 | 2002.10.19 |
하지만 주소 중에 공백 (ex : http://www.nzeo.com/나의친구.jpg 라고 하면 문제가 생길 듯...