관리 메뉴

키스세븐

그누보드 검색 결과페이지에 태그가 나오지 않도록 하기 - search.php 본문

홈피와 블로그

그누보드 검색 결과페이지에 태그가 나오지 않도록 하기 - search.php

키스 키스세븐 2015. 1. 4. 00:00
공유하기 링크
필요하면 공유하세요 ^^

[저작권 정책 변경 안내]

저작권 정책이 "복사는 금지되고 링크 공유만 허용"으로 변경됩니다.

지나치게 대량 복사를 해가서 오히려 이 블로그가 검색서비스에서 억울하게 무단복사글 적용 취급을 받고 있습니다.

이에 복사를 불허하며, 또한 "이미 대량 복사를 해간 분들에게도 삭제를 요청"합니다.

그러나 링크 공유는 그대로 허용되니 참고 바랍니다.

읽은 후 마음에 드시면 즐겨찾기 하세요!
[그누보드 검색 결과페이지에 태그가 나오지 않도록 하기 - search.php] 




검색 결과에서 태그 제외하는 방법 

그누보드5에서는 많이 개선이 되었으나, 그누보드4를 쓰거나 그누보드4용 스킨을 그누보드5에서 덮어서 사용하면 통합검색 등을 했을 때 검색결과에 <Div> 등의 태그나 기타 외계어 등의 같이 나올 때가 있습니다. 이럴 때 <br>, <div>등이 글자에 섞여 나오는 것을 제외하는 방법입니다.

DHTML을 이용한 게시판 글쓰기로 입력을 하게 되면 눈에는 안 보이지만 태그들이 자동 생성되어 글과 함께 저장됩니다.
물론 저장한 글을 게시판에서 볼 때는 아무 문제가 생기지 않습니다. 하지만 문제는 통합검색을 통하여 검색했을 때 이런 태그들이 글과 함께 출력되는 것입니다.

이를 해결하기 위하여 search.php파일을 열어 수정하여 해결해 봅시다.
search.php파일은 루트디렉토리 아래의 bbs라는 폴더에 들어 있습니다. 






파일 수정 소스코드 

search.php파일을 에디터로 연 후, 찾기기능을 통해서 
$content = cut_str(get_text($row[wr_content]),300,"…"); 
부분을 찾습니다.
이것은 검색된 내용을 표시하기 위하여 300자 정도로 잘라 표시하라는 부분입니다.


이 부분 바로 위쪽에 아래의 두 줄을 삽입합니다.
$row[wr_content] = strip_tags($row[wr_content]);
$row[wr_content] = ereg_replace(" ", " ", $row[wr_content]);

strip_tags는 html 및 php 코드를 제거하는 명령입니다. 
두번째 인자를 넣으면 제거하지 않을 것을 지정할 수도 있습니다. 

strip_tags의 괄호 안에서 쉼표를 하며 입력하면 두번째 인자가 됩니다. 
예) strip_tags($row[wr_content], ''<p>'') : 단락 태그는 놔두라는 의미. 
프로그램 언어가 아니라 일반 태그를 지정할 때는 반드시 따옴표로 묶어야 합니다. 

단, HTML 유효성을 검사하지 않기 때문에 예기치 않은 깨짐이 생길 수 있음은 알아 둡시다.    



ereg_replace는 문자를 다른 것으로 바꾸는 명령입니다.   
괄호 안의 "&nbsp;", " ", $row[wr_content]란 &nbsp;태그를 " "  즉 공란으로 바꿔서 $row[wr_content]에 넣으라는 의미입니다. 첫번째 "  " 부분은 &nbsp;태그를 말하며 두번째 "  "부분은 진짜 빈공간을 뜻합니다.

[저작권법 표시] 이 글의 원본: 키스세븐(www.kiss7.kr)


 

이와 같이 하면 통합검색 시 출현하는 외계어를 제거할 수 있습니다.
이런 부분을 잘 처리하려면 정규식을 배워 두는 것이 좋습니다. 
위의 방법은 굳이 그누보드가 아니더라도 모든 php에서 문자에 관련한 명령으로 언제든지 쓰일 수 있는 방법이기도 합니다. 

★ 이 정보가 도움이 된다면 아래의 공감을 부탁드립니다! ^^

(로그인 필요없음)



키스세븐지식은 키스세븐과 그룹 사이트입니다.

아래로 더 내려 가 보세요!

혹시 읽을만한 것이 또 있을지도 모르잖아요? ^^

유용하다면 즐겨찾기도 해 주세요!
http://kiss7.tistory.com

Tag
, , , , , , ,
공유하기 링크
필요하면 공유하세요 ^^
저작권법: 단,직접 복사 시에는 반드시 원문주소 표시 필수
0 Comments
댓글쓰기 폼