답변 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));
몇군데만 알려드렸습니다..
테그를 없애고 공백을 없애고 해서 검색을 합니다.
답변을 작성하려면 로그인이 필요합니다.
