블로그 프로필 이미지

2015. 4. 28. 10:46
SMALL





전 포스팅에 한글만 검사하는 알고리즘을 올린적이 있다. 그때의 알고리즘은 초창기, 엉뚱한 생각으로 만든 알고리즘이였다. 솔직히, 지금 그 알고리즘을 이용하여 한글검사 알고리즘을 구축하라고 하면, 때려치고 만다. 그 이유는 고생만 하기 때문이다..


한글검사 알고리즘은 여기저기 많이 나와 있지만, 그런 알고리즘은 특문결합이 올바르지 않았다. 뭐, 여러 알고리즘들을 테스트해본건 아니다. 그냥 여기저기 굴러다니는 블로그에 있는 글들을 테스트해 보았다. 대부분 비슷하기 때문에, PHP 한글검사 키워드로 구글링해도 많이 볼 수 있다.


암튼, 결론은 전에 올린 한글검사 알고리즘 포스팅은 깔끔하게 지웠다. 나도 안쓰는걸 다른사람이 보고 쓸일은 없기 때문이다. 또한 이 한글검사 알고리즘이 훨씬 간결하기 때문이다. 여기서 중요한건 100%도 아닌 99.9% 가 된 이유다. 0.1%는 내가 테스트해보지 못해서 생겨날 오류의 확률이다. 


이 알고리즘을 사용하기 위해선 아래의 한글파일모음이 필요하다. 그이유는 당연한 소리지만, 한글검사는 모든한글을 가지고 검사하기 때문이다. 


아래는 한글, 영문, 숫자 인지 검사하는 알고리즘이다. 뭐 알고리즘이라기 보단 소스코드라는 말이 더 어울리는것같다. 참고로 속도는 보장 못한다!.


 PHP 한글, 영문, 숫자 검사하는 소스코드


<?PHP /* 문자열 */ $langs="사과apple입니다"; /* 모든한글 : db에 저장된 한글파일을 불러오는 구간*/ $klangs=db_klangs; /* 문자열을 정규식함수를 통해 검사한다. ** (한글,영문,숫자) 인지 검사 ** 일치 : true ** 불일 치 : false */ $check_langs=preg_match("/^[".$klangs."a-zA-Z0-9]*$/",$langs); ?>


주석으로 설명이 되있기때문에, 추가적인 설명은 하지 않겠다. 중요한건 위의 소스코드에서 붉은색으로 된 db_klangs 부분이다. 이부분은 데이터베이스에서 한글문자들이 저장된 데이터를 가져오는 구간이다. 그렇기 때문에, 아래의 포스팅을 클릭하여 모든 한글을 모아둔 파일을 다운로드 받아서 사용하여야 한다.




LIST