
팁과노하우
자동링크 함수 정규식 수정 (Url 뒤에 괄호 등이 붙는경우 처리방식 개선)
그누보드 원본에서 제공하는 자동링크 관련 입니다.
2.1 패치에 포함하려고 했으나 수정해야되는 파일이 그누보드에서 업데이트가 자주 있는 핵심파일이라
선택적으로 사용하실 수 있도록 코드를 알려드립니다.
문제) @bank365님 제보
댓글 등에서 http, https 를 포함한 링크 삽입시 아래와같은 형태인경우
(https://naver.com) 마지막의 괄호가 포함되어 링크가 만들어지는 문제.
해결)
/lib/common.lib.php 256라인 의 함수를 아래와 같이 변경해주세요.
Url 마지막에 ) ] } 문자가 있을때 링크에 포함하지 않습니다.
function url_auto_link($str)
{
global $g5;
global $config;
$attr_nofollow = (function_exists('check_html_link_nofollow') && check_html_link_nofollow('url_auto_link')) ? ' rel="nofollow"' : '';
$str = str_replace(array("<", ">", "&", """, " ", "'"), array("t_lt_t", "t_gt_t", "&", """, "t_nbsp_t", "'"), $str);
// 정규식 수정: URL 마지막에 ) ] } 문자가 올 경우 제외
$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']}" $attr_nofollow>\2</A>", $str);
$str = preg_replace("/(^|["'s(])(www.[^"'s()]+)/i", "\1<A HREF="http://\2" TARGET="{$config['cf_link_target']}" $attr_nofollow>\2</A>", $str);
$str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "<a href="mailto:\0" $attr_nofollow>\0</a>", $str);
$str = str_replace(array("t_nbsp_t", "t_lt_t", "t_gt_t", "'"), array(" ", "<", ">", "'"), $str);
return run_replace('url_auto_link', $str);
}
감사합니다.
- 이전글햄버거 좌측 사이드 아이콘을 서브페이지에서 < 백버튼으로 나오게하기2024.11.02
- 다음글mp4 파일 업로드 시 자동 재생 (스킨 파일 첨부)2024.10.24
댓글목록
