Backend/PHP
PHP 검색어 마크 표시
Jeffrey Oh
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; // 두 번째 검색어 사용할 경우 가능