| 제목 | 검색시 검색해당 글자에 특정 색상 입히는 작업을 하고 있는데요. | ||
|---|---|---|---|
| 글쓴이 | amkor | 작성시각 | 2014/05/21 11:46:18 |
|
|
|||
foreach ($data_result["qry"] as $i => $row) {
$data_list[$i]->title = (strpos($searchkey, 'title')) ? search_font(utfChange($row["title"]), $searchvalue) : utfChange($row["title"]);
----생략----} 보시면 $searchvalue는 검색어 $searchkey 검색 필드입니다. 소스 보시면 searchkey의 검색 필드가 title이면 search_font 함수로 빠져 나가는건데요.. 이 함수는 helper 함수로 저장했고 자동으로 불러내도록 했습니다.
function search_font($str, $stx, $tag_open='', $tag_close = '') {
if ($str == '')
return FALSE;
if ($stx != '') {
// 문자앞에 \ 를 붙인다.
$src = array('/', '|');
$dst = array('\/', '\|');
if (!trim($stx)) return $str;
// 검색어 전체를 공란으로 나눈다
$s = explode(' ', $stx);
// '/(검색1|검색2)/i' 와 같은 패턴을 만듬
$pattern = '';
$bar = '';
foreach($s as $row) {
if (trim($row) == '')
continue;
$tmp_str = str_replace($src, $dst, quotemeta($row));
$pattern .= $bar . $tmp_str . '(?![^<]*>)';
$bar = '|';
}
return preg_replace('/('.$pattern.')/i', $tag_open.'\\1'.$tag_close, $str);
// 기존
// return preg_replace('/('.preg_quote($stx, '/').')/i', $tag_open."\\1".$tag_close, $str);
}
return $str;
}
그런데 검색만 잘 되고 아무 반응이 없네요 ㅠ,ㅠ 왜 그런건지 ㅠ,ㅠ |
|||
| 다음글 | 세션에 대한 질문입니다(Rest와 병행입니다!) (2) | ||
| 이전글 | 500에러 (7) | ||
|
변종원(웅파)
/
2014/05/21 13:48:09 /
추천
0
|
|
amkor
/
2014/05/21 13:51:13 /
추천
0
아예 변환이 안되네요,.ㅠ,ㅠ
|
|
변종원(웅파)
/
2014/05/21 13:55:23 /
추천
0
$searchkey 이게 어디서 나온건지 관련부분을 볼 수가 없으니 답변하기 힘듭니다.
변환이 안됐다면 foreach단에서 작동을 안하거나 해당 함수를 실행했지만 제대로 작동안했거나 2가지 케이스만 남았네요. 게시판 이동합니다. |
|
amkor
/
2014/05/21 13:58:54 /
추천
0
<select name="searchkey" style="width:100px">
<option value="title" <?=($searchkey=="title") ? "selected" : "";?>>제 목</option>
<option value="content" <?=($searchkey=="content") ? "selected" : "";?>>내 용</option>
</select>
이것은 제목으로 검색할껀지 , 내용으로 검색 할껀지 검색 필드입니다. 만약 제목으로 검색하면 $searchkey 은 title로 나옵니다. |
|
amkor
/
2014/05/21 14:04:36 /
추천
0
search_font 함수 alert로 찍어 보았지만 안나오는것 봐서 (strpos($searchkey, 'title'))
이부분이 문제가 있는거 같습니다.. |
|
한대승(불의회상)
/
2014/05/21 14:12:46 /
추천
0
$searchkey 에 들어 있는 데이타 확인해 보세요.
|
|
amkor
/
2014/05/21 14:13:01 /
추천
0
아 알고 보니깐 <code> </code> 이 html 태그가 안먹히네요.. font로 바꾸니깐 되네요 ㅡㅡ;
|
|
amkor
/
2014/05/21 14:21:31 /
추천
0
(strpos($searchkey, 'title')) <-- 이부분은 왜 안되는건지 ㅠ,ㅠ 그래서 일단은 ($searchkey =='title') 이것으로 대체 했는데 ㅠ,ㅠ
|
아예 변환이 안된건지 체크해보세요.