function url_auto_link() 변경을 어떻게 해야 될까요. ㅠㅠ 정보
function url_auto_link() 변경을 어떻게 해야 될까요. ㅠㅠ본문
게시판에 예를들어
http://naver.com 이라고 적었을때 링크를 자동으로 걸어주는것이 url_auto_link()함수 인것은 알겠습니다.
함수사용시 <a href="http://naver.com" target="_blank">http://naver.com</a> 이렇게 바뀌는데..
중간에 rel="nofollow"을 추가 하고 싶어서 아래와 같이 함수를 수정하여 성공했습니다.
그럼 이렇게 출력됩니다.<a href="http://naver.com" rel="nofollow" target="_blank">http://naver.com</a>
그런데 문제는 에디터로 삽입을 하거나 html로 처음부터 <a href="http://naver.com" target="_blank">http://naver.com</a> 이렇게 넣은것도 중간에 rel="nofollow" 추가하고 싶은데 하루종일 삽질해도 안됩니다. 초보가 너무 삽질해도 안되서 이 답답한 마음을 해결해주실분께 간절히 도움요청드립니다. 이마음 아실겁니다.ㅠㅠ 원래부터 링크가 걸려있는것에 어떻게해야 중간에 넣을수 있을까요? 부탁드리겠습니다.
function url_auto_link($str)
{
global $g4;
global $config;
// 속도 향상 031011
$str = preg_replace("/</", "\t_lt_\t", $str);
$str = preg_replace("/>/", "\t_gt_\t", $str);
$str = preg_replace("/&/", "&", $str);
$str = preg_replace("/"/", "\"", $str);
$str = preg_replace("/ /", "\t_nbsp_\t", $str);
$str = preg_replace("/([^(http:\/\/)]|\(|^)(www\.[^[:space:]]+)/i", "\\1<A HREF=\"http://\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
//$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:=_\?\/~\+%@;\-\|\,]+)/i", "\\1<A HREF=\"\\2\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
// 100825 : () 추가
// 120315 : CHARSET 에 따라 링크시 글자 잘림 현상이 있어 수정
if (strtoupper($g4['charset']) == 'UTF-8') {
$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
} else {
$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
}
// 이메일 정규표현식 수정 061004
//$str = preg_replace("/(([a-z0-9_]|\-|\.)+@([^[:space:]]*)([[:alnum:]-]))/i", "<a href='mailto:\\1'>\\1</a>", $str);
//$str = preg_replace("/([0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,4})/i", "<a href='mailto:\\1'>\\1</a>", $str);
$str = preg_replace("/\t_nbsp_\t/", " " , $str);
$str = preg_replace("/\t_lt_\t/", "<", $str);
$str = preg_replace("/\t_gt_\t/", ">", $str);
return $str;
}
http://naver.com 이라고 적었을때 링크를 자동으로 걸어주는것이 url_auto_link()함수 인것은 알겠습니다.
함수사용시 <a href="http://naver.com" target="_blank">http://naver.com</a> 이렇게 바뀌는데..
중간에 rel="nofollow"을 추가 하고 싶어서 아래와 같이 함수를 수정하여 성공했습니다.
그럼 이렇게 출력됩니다.<a href="http://naver.com" rel="nofollow" target="_blank">http://naver.com</a>
그런데 문제는 에디터로 삽입을 하거나 html로 처음부터 <a href="http://naver.com" target="_blank">http://naver.com</a> 이렇게 넣은것도 중간에 rel="nofollow" 추가하고 싶은데 하루종일 삽질해도 안됩니다. 초보가 너무 삽질해도 안되서 이 답답한 마음을 해결해주실분께 간절히 도움요청드립니다. 이마음 아실겁니다.ㅠㅠ 원래부터 링크가 걸려있는것에 어떻게해야 중간에 넣을수 있을까요? 부탁드리겠습니다.
function url_auto_link($str)
{
global $g4;
global $config;
// 속도 향상 031011
$str = preg_replace("/</", "\t_lt_\t", $str);
$str = preg_replace("/>/", "\t_gt_\t", $str);
$str = preg_replace("/&/", "&", $str);
$str = preg_replace("/"/", "\"", $str);
$str = preg_replace("/ /", "\t_nbsp_\t", $str);
$str = preg_replace("/([^(http:\/\/)]|\(|^)(www\.[^[:space:]]+)/i", "\\1<A HREF=\"http://\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
//$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:=_\?\/~\+%@;\-\|\,]+)/i", "\\1<A HREF=\"\\2\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
// 100825 : () 추가
// 120315 : CHARSET 에 따라 링크시 글자 잘림 현상이 있어 수정
if (strtoupper($g4['charset']) == 'UTF-8') {
$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
} else {
$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
}
// 이메일 정규표현식 수정 061004
//$str = preg_replace("/(([a-z0-9_]|\-|\.)+@([^[:space:]]*)([[:alnum:]-]))/i", "<a href='mailto:\\1'>\\1</a>", $str);
//$str = preg_replace("/([0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,4})/i", "<a href='mailto:\\1'>\\1</a>", $str);
$str = preg_replace("/\t_nbsp_\t/", " " , $str);
$str = preg_replace("/\t_lt_\t/", "<", $str);
$str = preg_replace("/\t_gt_\t/", ">", $str);
return $str;
}
댓글 전체
url_auto_link()에서 수정한 것은 원래대로 돌려놓으세요
view.skin.php 하단 자바스크립트 부분에 아래 코드를 넣으세요(어떤 용도로 사용하는 것인지 상세한 설명이 있어야..)
$(function(){
$('#writeContents a').each(function() {
$(this).attr('rel','nofollow');
});
}
view.skin.php 하단 자바스크립트 부분에 아래 코드를 넣으세요(어떤 용도로 사용하는 것인지 상세한 설명이 있어야..)
$(function(){
$('#writeContents a').each(function() {
$(this).attr('rel','nofollow');
});
}
균이님 감사합니다. 사용용도는 wr_content 내용에 링크가 들어간 태그가 있으면 링크태그 중간에 rel="nofollow"를 넣고 일반주소만 넣을시 오토링크가 걸리되 오토링크에도 rel="nofollow"를 싶어서 입니다. 결론적으로 내용안에 링크가 있으면 rel="nofollow"를 넣고 싶습니다.
view.skin.php 하단에 넣었는데 안되는것 같습니다. 그리고 스킨마다 변경해야되는데 스킨을 변경하지 않고 모두 적용되게 하고 싶습니다. 균이님께 여러번 도움받았는데 초보에게 빛을 주시는 너무너무 감사하고도 감사한분이십니다.
view.skin.php 하단에 넣었는데 안되는것 같습니다. 그리고 스킨마다 변경해야되는데 스킨을 변경하지 않고 모두 적용되게 하고 싶습니다. 균이님께 여러번 도움받았는데 초보에게 빛을 주시는 너무너무 감사하고도 감사한분이십니다.
view.skin.php 하단에 넣었는데 안되는것 같습니다.<--- 안되는 것 같다는 것이 혹시 소스보기 하면
rel=~~이게 안보인다는 얘기는 아닌가요?
소스보기하면 소스에 나오지는 않지만 a태그에 rel 속성을 추가하는 코드입니다
그래서 용도를 설명해야 한다는 것입니다
저렇게하면 url_auto_link()함수에서 한 것과 같은 효과가 됩니다
rel=~~이게 안보인다는 얘기는 아닌가요?
소스보기하면 소스에 나오지는 않지만 a태그에 rel 속성을 추가하는 코드입니다
그래서 용도를 설명해야 한다는 것입니다
저렇게하면 url_auto_link()함수에서 한 것과 같은 효과가 됩니다
균이님 답변을 목놓아 기다리고 있었다는 너무 감사합니다.
그런데 게시판마다 변경하지 않으려면 tail.php나 tail.sub.php에 아래같이 넣으면 전체에 적용이 될까요?
적용되었는지 확인할수 있는방법은 없는지요?
<script language="JavaScript">
$(function(){
$('#writeContents a').each(function() {
$(this).attr('rel','nofollow');
});
}
</script>
그런데 게시판마다 변경하지 않으려면 tail.php나 tail.sub.php에 아래같이 넣으면 전체에 적용이 될까요?
적용되었는지 확인할수 있는방법은 없는지요?
<script language="JavaScript">
$(function(){
$('#writeContents a').each(function() {
$(this).attr('rel','nofollow');
});
}
</script>
tail.php에 넣으려면 아래처럼 하세요
모든 게시판 뷰페이지에 적용됩니다
<?if($bo_table && $wr_id){?>
<script type='text/javascript'>
$(function(){
$('#writeContents a').each(function() {
$(this).attr('rel','nofollow');
});
}
</script>
<?}?>
모든 게시판 뷰페이지에 적용됩니다
<?if($bo_table && $wr_id){?>
<script type='text/javascript'>
$(function(){
$('#writeContents a').each(function() {
$(this).attr('rel','nofollow');
});
}
</script>
<?}?>
균이님 너무 감사드립니다.^^
</script> 바로 윗부분 오타입니다
} ---> });
} ---> });