테스트 사이트 - 개발 중인 베타 버전입니다

리스트에서 검색시 문의드립니다. 채택완료

1.

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

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

 

2. 

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

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

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

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

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

이를 응용하면 됩니다.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

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)?>
<?php echo cut_str(strip_tags($list[$i]['wr_content']), 200)?>

스킨에 list.php에 위에소스 대신 아래소스 넣으니 되네요

<?php echo $list[$i]['wr_content'] ?>

댓글을 작성하려면 로그인이 필요합니다.

답변감사합니다. 도움되었습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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를 찾게 됩니다. 점은 한개까지는 되고 연속점은 안되는게 맞습니다. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

결국엔 안된다는 말씀인거죠?
\, 를 삭제하니 되긴하네요
다만 그러면 12000은 검색이 되질 않는군요.
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고