도아주세요... > 자유게시판

자유게시판

도아주세요... 정보

도아주세요...

본문

단어 필터링이 제대로 안먹혀요 ....

1번째 , 컴마 단어 필터링만 먹히고..... 나머진 안먹히는 현상이 .... 해결법좀.. 알려주세요 ㅜ_ㅜ..

 

http://sir.co.kr/qa/86255?s_tag=%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C5

 

질문 올렸어요..

추천
0

댓글 8개

throw exception  으로 잡아보시죠..
아니면 해당 단어들은 다시 badWord 같은 변수에 쉼표로 매칭으로 넣어서
어쩌구,저쩌구,이런거,저런거 는 금지단어 입니다.
로 표현되도록 로직 수정하세요.
금지단어가 금지어1 금지어2 금지어3
인데

안녕하세요. 금지어2 입니다. <- 이 2번째 금지어는 경고메세지지가 안보인다는건지...

안녕하세요 금지어1이고 금지어2 입니다. <- 여기서 금지어1 만 경고메세지가 보이고 금지어2에 대해서는 경고메세지가 안보인다는건지요?

만약 후자라면 break 를 빼시면 되구요.
전자라면 제가 답변해둔걸 보시면 될 듯 합니다....

저는 전자라고 생각했거든요. 냐하하;;
하하하하.. 저 진짜 바보엿나봅니다.. 저거 break 걸었던게.. 그다음 php 가 다씹혀서 막아놧더니... 풀어도 안씹히네요 ..히힣.. 감사합니다. ㅎㅎ
필터되는 단어가 많다면, 가급적 정규식을 활용해보세요.

<?php
$filter = '금지어1,금지어2,금지어3';
$filter = str_replace("," , "|" , $filter); // 정규식을 사용하기 위해 콤마를 | 로 바꿈

$search = '금지어1을 쓰고 금지어3도 써보자!';
if (preg_match_all('/('.$filter.')/', $search, $match) == true) {
?>
금지어에 걸렸습니다.
금지어에 걸린 단어들은 아래와 같습니다.
<?php
for ($i=0, $loop=count($match[0]); $i<$loop; $i++) {
echo $match[0][$i].'<br>';
}
}
?>

위와 같이 하면 아래와 같이 나옵니다.


금지어에 걸렸습니다.
금지어에 걸린 단어들은 아래와 같습니다.
금지어1
금지어3
히히 .. 팁 감사합니다. ㅎㅎ 그런데 저 아직 초보라 그런지 금지어가 아닐경우

'????'에 대한 검색결과가 없습니다.
단어의 철자가 정확한지 확인해 보세요.
한글을 영어로 혹은 영어를 한글로 입력했는지 확인해 보세요.
검색어의 단어 수를 줄이거나, 보다 일반적인 검색어로 다시 검색해 보세요.
두 단어 이상의 검색어인 경우, 띄어쓰기를 확인해 보세요.
검색 옵션을 변경해서 다시 검색해 보세요.


라는문구 하나만 뛰울려고하는데 참 이게 어렵네요 지금 이리저리 소스를 보면서 계속 뜯어보는중이지만 .. ㅎㅎ
전체 522 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여6 회 시작24.04.25 20:23 종료24.05.02 20:23
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT