그누보드5 에서 제공하는 유용한 함수들 > 그누보드

본문 바로가기
사이트 내 전체검색

그누보드

그누보드5 에서 제공하는 유용한 함수들

페이지 정보

profile_image
작성자 관리자 (61.♡.24.46)
댓글 0건 조회 6,669회 작성일 15-09-26 21:54

본문

그누보드에서는 자체적으로 함수를 만들어 사용하는 것들이 많이 있습니다.
이들 중 유용한 것들을 모아 보았습니다.


ㅁ php 자체 제공 함수

- strip_tags("문자열") 
    // 문자열에서 html 태그와 php 태그를 모두 제거한다.

- mb_substr("가나다라마바사아자차카타파하",0,7);  // "가나다라마바사" , 한글도 1자로 취급함
- mb_strcut("가나다라마바사아자차카타파하",0,7);  // "가나", 한글은 3byte 이기때문에 두글자만 출력

    // http://www.baragi.net/bbs/board.php?bo_table=dev&wr_id=8619



ㅁ 그누보드 제공 함수

- cut_str("문자열",길이) 

    // 문자열을 길이만큼 자른다. 중요한 것은, 한글을 반토막 내는 일이 없다. ^^


- get_text("문자열",옵션) 

    // 태그, 따옴표 등의 특수문자를 & lt, & gt, & #039 등으로 바꿔 준다.
    // 옵션에 1을 넣으면 \n 은 <br> 로 바꾸어 주어 줄바꿈은 해 준다. ^^


- conv_subject("문자열",길이,접미)

    // get_text 와 cut_str 를 합쳐 놓았다. ^^


- conv_content

    함수위치 : /lib/common.lib.php
    // function conv_content($content, $html, $filter=true)

    사용예
    글보기 view 화면에서는 이미 사용되어지고 있다.
    글목록 list 화면에서 wr_content 를 보여줄때, conv_content($list[$i]['wr_content']) 처럼 사용할 수 있다.


- get_search_string($stx)

  // 검색어 특수문자 제거


[code]
<?php
// 제목을 변환
function conv_subject($subject, $len, $suffix='')
{
    return get_text(cut_str($subject, $len, $suffix));
}

// 내용을 변환
function conv_content($content, $html, $filter=true)
{
    global $config, $board;

    if ($html)
    {
        $source = array();
        $target = array();

        $source[] = "//";
        $target[] = "";

        if ($html == 2) { // 자동 줄바꿈
            $source[] = "/\n/";
            $target[] = "<br/>";
        }

        // 테이블 태그의 개수를 세어 테이블이 깨지지 않도록 한다.
        $table_begin_count = substr_count(strtolower($content), "<table");
        $table_end_count = substr_count(strtolower($content), "</table");
        for ($i=$table_end_count; $i<$table_begin_count; $i++)
        {
            $content .= "</table>";
        }

        $content = preg_replace($source, $target, $content);

        if($filter)
            $content = html_purifier($content);
    }
    else // text 이면
    {
        // & 처리 : &amp; &nbsp; 등의 코드를 정상 출력함
        $content = html_symbol($content);

        // 공백 처리
        //$content = preg_replace("/  /", "&nbsp; ", $content);
        $content = str_replace("  ", "&nbsp; ", $content);
        $content = str_replace("\n ", "\n&nbsp;", $content);

        $content = get_text($content, 1);
        $content = url_auto_link($content);
    }

    return $content;
}

function cut_str($str, $len, $suffix="…")
{
    $arr_str = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
    $str_len = count($arr_str);

    if ($str_len >= $len) {
        $slice_str = array_slice($arr_str, 0, $len);
        $str = join("", $slice_str);

        return $str . ($str_len > $len ? $suffix : '');
    } else {
        $str = join("", $arr_str);
        return $str;
    }
}

// TEXT 형식으로 변환
function get_text($str, $html=0, $restore=false)
{
    $source[] = "<";
    $target[] = "&lt;";
    $source[] = ">";
    $target[] = "&gt;";
    $source[] = "\"";
    $target[] = "&#034;";
    $source[] = "'";
    $target[] = "&#039;";

    if($restore)
        $str = str_replace($target, $source, $str);

    // 3.31
    // TEXT 출력일 경우 &amp; &nbsp; 등의 코드를 정상으로 출력해 주기 위함
    if ($html == 0) {
        $str = html_symbol($str);
    }

    if ($html) {
        $source[] = "\n";
        $target[] = "<br/>";
    }

    return str_replace($source, $target, $str);
}

// 3.31
// HTML SYMBOL 변환
// &nbsp; &amp; &middot; 등을 정상으로 출력
function html_symbol($str)
{
    return preg_replace("/\&([a-z0-9]{1,20}|\#[0-9]{0,3});/i", "&#038;\\1;", $str);
}


// 검색어 특수문자 제거
function get_search_string($stx)
{
    $stx_pattern = array();
    $stx_pattern[] = '#\.*/+#';
    $stx_pattern[] = '#\\\*#';
    $stx_pattern[] = '#\.{2,}#';
    $stx_pattern[] = '#[/'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';

    $stx_replace = array();
    $stx_replace[] = '';
    $stx_replace[] = '';
    $stx_replace[] = '.';
    $stx_replace[] = '';

    $stx = preg_replace($stx_pattern, $stx_replace, $stx);

    return $stx;
}

?>
[code]

추천0

댓글목록

등록된 댓글이 없습니다.

Total 85건 1 페이지
  • RSS
그누보드 목록
번호 제목 조회 추천 날짜
공지6670009-26
공지기타3048004-14
공지기타5383001-25
공지기타6408001-25
공지기타7500010-20
802055008-07
79기타1499005-31
782580002-22
772452005-21
7610115004-03
755545003-07
74기타2451012-04
736625005-04
722838005-04
71기타2410005-04
704890012-11
693765011-29
684749004-16
674419004-02
664802001-25

검색


사이트 정보

Copyright © Baragi.Net. All rights reserved.