검색할때 게시글의 내용에서 html태그가 검색안되는게 어떤 방법으로 한건지 궁금해요

검색할때 게시글의 내용에서 html태그가 검색안되는게 어떤 방법으로 한건지 궁금해요

QA

검색할때 게시글의 내용에서 html태그가 검색안되는게 어떤 방법으로 한건지 궁금해요

본문

그누보드가 어떤 방법으로 한건지 궁금한건데여

 

만약 일반적인  php로 게시글의 내용을 검색햇을 경우(스마트에디터로 작성함)

p를 검색하면 p태그가 포함된것들이 검색된다거나

그러거든요?

 

아래 처럼 저런 내용이 검색되는데

검색이 되면 안되는데 그누보드는 어떤 방식으로 안되게 해놓은건지 어디서 볼 수 있을까요?

 

977803506_1567657579.2522.png

 

이 질문에 댓글 쓰기 :

답변 1

1.

if (isset($_REQUEST['stx']))  { // search text (검색어)
    $stx = get_search_string(trim($_REQUEST['stx']));
    if ($stx || $stx === '0')
        $qstr .= '&stx=' . urlencode(cut_str($stx, 20, ''));
} else {
    $stx = '';
}

 

2.

// set_search_font(), get_search_font() 함수를 search_font() 함수로 대체
function search_font($stx, $str)
{
    global $config;

    // 문자앞에 \ 를 붙입니다.
    $src = array('/', '|');
    $dst = array('\/', '\|');

    if (!trim($stx) && $stx !== '0') return $str;

    // 검색어 전체를 공란으로 나눈다
    $s = explode(' ', $stx);

    // "/(검색1|검색2)/i" 와 같은 패턴을 만듬
    $pattern = '';
    $bar = '';
    for ($m=0; $m<count($s); $m++) {
        if (trim($s[$m]) == '') continue;
        // 태그는 포함하지 않아야 하는데 잘 안되는군. ㅡㅡa
        //$pattern .= $bar . '([^<])(' . quotemeta($s[$m]) . ')';
        //$pattern .= $bar . quotemeta($s[$m]);
        //$pattern .= $bar . str_replace("/", "\/", quotemeta($s[$m]));
        $tmp_str = quotemeta($s[$m]);
        $tmp_str = str_replace($src, $dst, $tmp_str);
        $pattern .= $bar . $tmp_str . "(?![^<]*>)";
        $bar = "|";
    }

    // 지정된 검색 폰트의 색상, 배경색상으로 대체
    $replace = "<b class=\"sch_word\">\\1</b>";

    return preg_replace("/($pattern)/i", $replace, $str);
}

 

3.

    $search_text = strip_tags(($search_text));
    $search_text = trim(stripslashes($search_text));

 

몇군데만 알려드렸습니다..
테그를 없애고 공백을 없애고 해서 검색을 합니다.

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 176
QA 내용 검색

회원로그인

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