본문으로 바로가기

PHP 검색어 마크 표시

category Backend/PHP 2020. 5. 14. 16:39
<?
#######################################################################
# SearchWordMark.inc : 검색어 마크                                     #
# author             : Jeffrey Oh                                     #
# lastUpdate         : 2020-01-10                                     #
#######################################################################

class SWMark {
    var $frontStr; // 문장 처음
    var $midStr; // 문장 중간
    var $tailStr; // 문장 끝

    function mark($originWord, $findWord, $sec=false) {
        if (mb_strpos($originWord, $findWord) > 0) {
            $this->frontStr = mb_substr($originWord, 0, mb_strpos($originWord, $findWord)); // 검색어 앞
            $this->midStr = mb_substr($originWord, mb_strpos($originWord, $findWord), mb_strlen($findWord)); // 검색어
            $this->tailStr = mb_substr($originWord, mb_strpos($originWord, $findWord) + mb_strlen($findWord)); // 검색어 뒤

            // 검색어 mark 표시
            if (!$sec) {
                return $this->frontStr."<mark style='font-weight: bold;'>".$this->midStr."</mark>".$this->tailStr;
            } else {
                return $this->frontStr."<mark style='color: #000; background-color: #ff857c; font-weight: bold;'>".$this->midStr."</mark>".$this->tailStr;
            }
        } else {
            $this->midStr = mb_substr($originWord, mb_strpos($originWord, $findWord), mb_strlen($findWord)); // 검색어
            $this->tailStr = mb_substr($originWord, mb_strpos($originWord, $findWord) + mb_strlen($findWord)); // 검색어 뒤

            // 검색어 mark 표시
            if (!$sec) {
                return "<mark style='font-weight: bold;'>".$this->midStr."</mark>".$this->tailStr;
            } else {
                return "<mark style='color: #000; background-color: #ff857c; font-weight: bold;'>".$this->midStr."</mark>".$this->tailStr;
            }
        }
    }
}
?>

사용방법

 

$title = "Hello World!!!";
$swm = new SWMark();
$title = $swm->mark($title, "Hello");
echo $title; // 첫 번째 검색어

$title = $swm->mark($title, "World", true);
echo $title; // 두 번째 검색어 사용할 경우 가능

'Backend > PHP' 카테고리의 다른 글

PHP Debug Print  (0) 2020.06.26
아스키코드 제어문자 삭제  (0) 2020.05.22
html 태그 제거 정규식  (0) 2020.05.07
post_max_size & upload_max_filesize  (0) 2020.04.22
Cookie Array Function  (0) 2020.03.12