게시판 댓글, 본문 유튜브,트위터,인스타그램 자동 변환 하기. > 그누보드5 팁자료실

그누보드5 팁자료실

게시판 댓글, 본문 유튜브,트위터,인스타그램 자동 변환 하기. 정보

게시판 댓글, 본문 유튜브,트위터,인스타그램 자동 변환 하기.

첨부파일

common.lib.php (108.9K) 71회 다운로드 2018-06-12 15:43:37

본문

전에 올렸던 글 삭제하고 좀 더 수정하여 올립니다.

 

common.lib.php파일만 수정하시면 됩니다.

 

common.lib.php의 수정이 없는 경우 첨부파일을 덮어씌우시면 바로 사용 가능합니다.

 

만약 수정이 있으면 Line 211 url_auto_link의 함수를 다음과 같이 수정해주세요

 


// way.co.kr 의 wayboard 참고
function url_auto_link($str)
{
    global $g5;
    global $config;
    //Made by Vorfeed
    //인스타, 유튜브, 트위터 URL 자동 변환 소스.   
    $regex = '~(?:http|https|)(?::\/\/|)(?:www.|)(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[a-z0-9;:@#?&%=+\/\$_.-]*~i';
    $str = preg_replace( $regex, '<iframe width="560" height="315" src="https://www.youtube.com/embed/$1" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>', $str );
    $regex = "/(https?:\/\/www\.)?instagram\.com(\/p\/\w+\/?)/im";
    $str = preg_replace( $regex, '<blockquote class="instagram-media" data-instgrm-captioned data-instgrm-permalink="https://www.instagram.com$2" data-instgrm-version="8"><span style="font-size:20px;text-decoration:none;"> instagram.. <i class="fa fa-cog fa-spin"> </i></span></blockquote> <script async defer src="//www.instagram.com/embed.js"></script>', $str );
    $regex = "/(https?:\/\/(www\.)?)?twitter\.com\/(?:#!\/)?(\w+)\/status(es)?\/(\d+)/im";
    $str = preg_replace( $regex, '<blockquote class="twitter-tweet" data-lang="ko"> <a href="https://twitter.com/$3/status/$5" style="text-decoration:none"><span style="font-size:20px;"> twitter.. <i class="fa fa-cog fa-spin"> </i></span></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>', $str );
    // 140326 유창화님 제안코드로 수정
    // http://sir.kr/pg_lecture/461
    // http://sir.kr/pg_lecture/463
    $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);
    //$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "<A HREF=\"\\1\" TARGET='{$config['cf_link_target']}'>\\1</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']}\" $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);
    /*
    // 속도 향상 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\" 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 에 따라 링크시 글자 잘림 현상이 있어 수정
    $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);
    // 이메일 정규표현식 수정 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;
}
추천
8

댓글 7개

전체 7 |RSS
그누보드5 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT