웹마스터 팁

http://board.mini-i.com이 문제는 제로보드도 역시 있는 문제 입니다.;;
eregi() 함수등으로 간단하게 처리할때
어이없는 한글을 같다고 인식할때가 있어요.

제로님도 보셔서;; 제로보드를 한층 더 빛내주시길 :)

HEX code 변환에 대한 속도걱정은 하지 않으셔도 되요;
함수 자체는 느리지만 편법;을 사용해서
1.6 메가 문장의 필터링에서 0.0005 초가 나왔답니다;;

이하 제가 PHPSCHOOL 에 남긴 글입니다;

---------------------------------------------------------------

안녕하세요 미뉘 입니다.
PHP 에서는 eregi,explode 등, 모든 검색 부분에서
한글을 검색할때 오류를 일으키는 것이 종종 있습니다.

이를테면 '려운' 과 '좆' 을 같게 인식한다거나 하는 것이죠.
어떤분의 말씀으로는 서버설정으로 이것을 해결할 수 있다고 하셨는데
필터링 사정-_-;상 서버설정 하나하나 다 바꿔달라고 할 수 없는거죠
무엇보다 프로그램 자체내에서 해결하는게 중요합니다.
이걸로 고심하고 있다가 저 아래에 어떤분이 HEX code 로 변환시켜서
판별하는 방법을 올려주셨습니다. 근데 그걸로 그냥 확인하면 문장이
조금만 길어지면 시간초과 됩니다; (한문자씩 바꿔주는 형식)
3시간-_-; 정도 막막해 있다가 드디어 해결했답니다 :)

strchr,substr 함수와 아랫분이 만드신 hex 변환 함수를 가지고 정확한 욕필터링
하는것을 보여드리겠습니다 -ㅁ-;

참고로 미니보드;; [02/09] 버젼부터 적용될 것이며
당장 확인 하실분은 http://board.mini-i.com 홈피내의
게시판에서 확인해보세요

기초적인것;; ( 지-_-랄 이라던지 ) 걸러내는 코드 다 빼고
핵심만 적었습니다.

------------------------------------------------------------

// $fil 에는 필터 내용들이 배열로 들어가 있습니다
// $fil = array('욕','욕-_-;;;'); 뭐 이렇게요;
// $confirm_filter 에는 필터링 대상 글이 들어가 있겠죠?

// 문자열을 hexcode로 바꿔주는 함수
function asc_hex($char) {
$j = 0; $word_length=strlen($char);
for($i = 0;$i<$word_length;$i++) {
if($j == 0) { if(ord(substr($char,$i,1)) > 0xa1 && ord(substr($char,$i,1)) <= 0xfe) {
$j = 1; $t_char = $t_char.bin2hex(substr($char,$i,1)); }
else { $t_char = $t_char."00".bin2hex(substr($char,$i,1))." "; }
} else { $t_char = $t_char.bin2hex(substr($char,$i,1))." "; $j = 0; } }
return $t_char; }

for($e=0;$e<count($fil);$e++)
{
if(strchr($confirm_filter,$fil[$e]))
{
      // 필터링에 걸렸을때 잘못된 체크는 아닌지 체크함
      $check_pos=strpos($confirm_filter,$fil[$e]);
      if($check_pos<5) $check_pos=5;
      $check_filter2=substr($confirm_filter,$check_pos-5,strlen($fil[$e])+5);
      if(eregi(asc_hex($fil[$e]),asc_hex($check_filter2))) die(" $fil[$e] 단어는 등록할 수 없습니다. (필터링기능) ");
}
}
제목 글쓴이 날짜
[추천 팁] 웹 브라우저가 한글인지 영문인지(다른 언어인지) 자동 인식하기... [1] 박용구 2002.07.10
[씽크식 PHP] 글자 하나씩 때어놓기.. (한글 자르기 포함) [1] John Sync. 2002.03.26
요일을 한글로 표시 [5] 페리스 2002.03.10
한글 필터링 정확히 하기 [1] mini 2002.02.09
MySQL에서 한글 정렬 문제 [2] 손정호 2001.11.21
[APM] 한글, gif, jpeg, png 다되는 GD 설치 [4] 앤디(andy) 2001.05.22
주어진 값이 한글,영어,숫자인지 체크 [2] 한승진 2003.08.29
숫자를 한글로 변환하는 함수 [1] 행복한고니 2003.01.03
글입력상자에서 자동으로 한글, 영문 바뀌게 하기 [6] 이경두 2001.11.15
영문사이트 제작시 별명, 사용자 ID등 한글이 표시될때 [3] file 겨우리851 2010.03.24
Smarty 한글 메뉴얼 공개합니다. [1] 미니미 2009.03.04
XpressEngine 공식 매뉴얼(한글 파일) #1 [9] file 자이제로 2008.11.21
XpressEngine 공식 매뉴얼(한글 파일) #2 [6] file 자이제로 2008.11.21
이미지 정보표시(EXIF) 영문을 한글로 [6] file Diver 2008.11.23
한글도메인(.kr) 사용시 링크걸기 [3] serendip 2009.02.04
winxp IE7 rwapm에서 한글이름파일 업로드 [12] 공수래 2007.09.17
태그 위젯으로 생성된 태그 리스트에서 한글태그 검색이 안될때 해결법 [3] 봄대리 2008.05.21
IE6 한글도메인에 ZBXE 때문에 속 썩이시는 분 [1] 햇살과수원 2008.05.26
winxp IE7 rwapm에서 한글이름파일 업로드 [7] file 공수래 2008.07.15
한글로 된 이미지 문제 [17] Defy 2008.08.19