리스트에서 검색시 문의드립니다.

리스트에서 검색시 문의드립니다.

QA

리스트에서 검색시 문의드립니다.

답변 3

본문

1.

리스트에 내용을 뽑아오도록 했습니다. 내용에 있는 단어로 검색을 하면 검색은 되는데 검색 단어 배경색이 변하지 않습니다.

제목이나 여분필드도 사용중인데 다 잘되는데 내용만 검색 단어 배경색이 바뀌지 않네요.

 

2. 

여분필드에 값이 12,000 입니다.(콤마가 들어있습니다.)

검색창에 12,000을 입력하면 검색이 안되네요.

참고로 마침표가 들어간 단어나 숫자는 검색이 됩니다.

 

여러 고수님들의 고견 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 3

검색 시 색상을 입히는 함수는 search_font() 입니다.

이를 응용하면 됩니다.

$list[$i]['subject'] = search_font($stx, $list[$i]['subject']);

bbs/list.php에 아래처럼 추가해도 안되네요.

$list[$i]['content'] = search_font($stx, $list[$i]['content']);
$list[$i]['wr_content'] = search_font($stx, $list[$i]['wr_content']);

스킨 list.php에서 아래처럼 쓰고 있습니다.
<?php echo cut_str(strip_tags($list[$i]['wr_content']), 200)?>

Lib에 common.lib.php에 

 

function get_search_string($stx)

{

    $stx_pattern = array();

    $stx_pattern[] = '#\.*/+#';

    $stx_pattern[] = '#\\\*#';

    $stx_pattern[] = '#\.{2,}#';

    $stx_pattern[] = '#[/\'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';

 

    $stx_replace = array();

    $stx_replace[] = '';

    $stx_replace[] = '';

    $stx_replace[] = '.';

    $stx_replace[] = '';

 

    $stx = preg_replace($stx_pattern, $stx_replace, $stx);

 

    return $stx;

}

검색어 관련 stx는 get_search_string해서 전달 합니다. 인젝션 방어고 12,000 으로 입력하시면 실제 디비에서 12000 를 instr하고 있는 row를 찾게 됩니다. 점은 한개까지는 되고 연속점은 안되는게 맞습니다. 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 61,347
© SIRSOFT
현재 페이지 제일 처음으로