검색단어 하이라이트 영역으로 키워드 변환하기 on redgoose note

검색단어 하이라이트 영역으로 키워드 변환하기

Nest: Development Category: PHP 2013-03-17

개요

  • 키워드검색을 하고나서 게시물 목록에 배경색으로 검색 키워드가 표시되게 하기 위하여 찾게된 방법이다.
  • 첫번째는 키워드가 대소문자를 구분하면 안되고, 두번째는 내용이 그대로 표시되어야 한다.
  • 키워드에 해당되는 부분은 span태그로 감싸서 css로 속성을 주는것이 좋다.

source

<?php
$con = 'cssHTMLCSShtmlCsshTMlcSS'; // 검색하려는 내용
$keyword = 'css'; // 검색어
$class = 'highlight'; // span태그 class이름
function keywordHightlight($keyword, $class, $con)
{
    if ($keyword)
    {
        $pattern = '/'.$keyword.'/i';
        $replacement = '<span class="'.$class.'">\0</span>';
        $str = preg_replace($pattern, $replacement, $con, -1);
    }
    else
    {
        $str = $con;
    }
    return $str;
}

result

<span class="highlight">css</span>HTML<span class="highlight">CSS</span>html<span class="highlight">Css</span>hTMl<span class="highlight">cSS</span>
  • 정규표현식을 사용한다.
  • \0 키워드를 이용하여 검색된 키워드를 그대로 불러올 수 있는 중요한 키워드다.