묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
strlen함수 관련 질문...
2005.07.27 23:08
strlen함수는 글자의 갯수를 반환 하잖아요..
그런데 한글은 두글자로 취급하더군요.
예)
가나다 abc->10글자
한글을 한 글자로 취급하고 글자수를 반환 할순 없을까요?
예)
가나다 abc->7글자
그런데 한글은 두글자로 취급하더군요.
예)
가나다 abc->10글자
한글을 한 글자로 취급하고 글자수를 반환 할순 없을까요?
예)
가나다 abc->7글자
댓글 4
-
곽군
2005.07.28 04:58
일반적으로 한글/특수문자는 2바이트 문자열이기 때문에 한글 한 글자당 2단위로 취급됩니다. -
냐하하~∏^∏
2005.07.28 11:21
문자열을 배열에 (ex [가][나][다][ ][a][b][c])에 저장한뒤
보통 문자열을 변수에 담으면 자동으로 $문자열[번호]이런식으로 배열이 나오는데...
한글은 물음표나 이상한걸로 나오죠.. 아스키 코드가 소문자 z가 123거든요
그 이상일경우 0.5를 더해주면됩니다.
반복문으로 배열의 크기만큼 sizeof해서 돌리면
if(ord("1") < ord($배열[번호]) && ord("z") > ord($배열[번호]) || $배열[번호] == " ")
$길이++;
else
$길이+=0.5;
저희 생각일뿐...일단 나오기만 하면되지 않을까요..-_- -
beMax
2005.07.28 13:04
php 컴파일 할때 어떻게 했느냐에 따라 다르지만 보통 기본으로 지원시켜놓습니다.
mb_strlen() 함수를 이용하시면 되구요 mb는 multi-byte 의 약자입니다.
사용방법은
$len = mb_strlen( "가나다 123", "euc-kr" );
echo $len
------------
output : 7
euc-kr 이라는 인코딩 방식을 지정할 수 있습니다.
문자열 관련 함수를 대부분 지원합니다. mb_substr(), mb_eregi() ... 등 -
Hyer[Md2]2005
2005.07.28 16:59
답변 감사합니다.