[그누보드 검색 결과페이지에 태그가 나오지 않도록 하기 - 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는 문자를 다른 것으로 바꾸는 명령입니다.
괄호 안의 " ", " ", $row[wr_content]란 태그를 " " 즉 공란으로 바꿔서 $row[wr_content]에 넣으라는 의미입니다. 첫번째 " " 부분은 태그를 말하며 두번째 " "부분은 진짜 빈공간을 뜻합니다.
[저작권법 표시] 이 글의 원본: 키스세븐(www.kiss7.kr)
이와 같이 하면 통합검색 시 출현하는 외계어를 제거할 수 있습니다.
이런 부분을 잘 처리하려면 정규식을 배워 두는 것이 좋습니다.
위의 방법은 굳이 그누보드가 아니더라도 모든 php에서 문자에 관련한 명령으로 언제든지 쓰일 수 있는 방법이기도 합니다.
★ 이 정보가 도움이 된다면 아래의 공감을 부탁드립니다! ^^
(로그인 필요없음)
키스세븐지식은 키스세븐과 그룹 사이트입니다.