장문의 컨텐트나 게시물에서 특정 단어를 검색했을때 검색어를 포함한 내용의 일부분만을
검색결과의 가운데 부분에 보이고자 할 경우 필요한 PHP함수를 구현해 보았다.
function search_ellipsis($content, $keyword, $front_num) {
$keyword_index = mb_strpos($content, $keyword);
$str_num = $front_num * 2;
$ellipsis = "";
$start_index = $keyword_index - $front_num;
if ($start_index < 0) {
$str_num += $start_index * -1;
$start_index = 0;
}
if (mb_strlen($content) - $start_index > $str_num) $ellipsis = "......";
return mb_substr($content, $start_index, $str_num).$ellipsis;
}
$content = "가나다라마바사아자차카타파하abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890";
$keyword = "A";
$result = search_ellipsis($content, $keyword, 10);
echo str_replace($keyword, "<b>".$keyword."</b>", $result);용법: search_ellipsis(내용, 검색어, 보일글자수);
실행결과:
qrstuvwxyzABCDEFGHIJ......