출처: http://www.aierse.net/neko/nekoTop.php?mode=content&menu=category&main_no=314&category=computer
substr()등을 이용했을 시 한글이 깨지게 되는데,
이 때 정규표현식 ^([\x00-\x7e]|.{2})* 를 보자.
^ : ^뒤의 문자열로 시작되는 것
() : 그룹화
[] : 안에 있는 문자열 중에서 하나의 문자
\x00-\x7e : ACSII 코드값의 0-126번째 문자(DEL제외 아스키문자 전부)
| : OR 연산자
. : 임의의 문자
{} : 앞에 있는 문자나 문자열의 갯수
* : 앞의 문자가 없거나 하나 이상
해석해보면
"ACSII 코드값의 0-126번째 문자 이거나 2바이트 길이 임의의 문자로 시작되는 문자가 없거나 하나 이상인 것" 을 의미하기 때문에(정리하면 DEL을 제외한 아스키문자나 2바이트문자-한글-)
preg_match('/^([\x00-\x7e]|.{2})*/', $substr, $temp_str);
이렇게 되면 정규표현식으로 만든 패턴과 부합하는 $substr의 모든 문자를 $temp_str[0]에 저장하므로 깨진 문자 부분만 빠지게 됨.
'IT_Programming > PHP' 카테고리의 다른 글
[펌] PHP+MySQL을 이용한 웹게임 개발 (0) | 2013.02.21 |
---|---|
php에서 쉘기능 사용(외부 프로그램 실행) (0) | 2007.11.06 |
php 활용 Tip 소스 모음 (0) | 2007.09.30 |
PHP에서 세션 사용하기 _ 세션 처리 함수 (0) | 2007.09.30 |
경매 남은 시간 구하기 PHP와 자바스크립트 소스 (0) | 2007.09.30 |