웹마스터 팁

오늘 우연히 substr()을 사용하다가 홀수길이로 한글을 잘라도 정상적으로 출력되는
재밌는 현상을 목격했습니다. ^^

<?
$strOrigin = "가나다라마";
$intLen = 5;

$strOrigin = substr($strOrigin, 0, $intLen);

echo "Length: " . strlen($strOrigin) . "<p>" . $strOrigin;

/*
- 결과 -

Length: 5
가나

*/
?>


위에서 보다시피 5bytes로 자르면 보통 "가나?" 와 같이 나오는데
여기선 "가나"로 출력되네요.(그런데 문자열의 길이는 4가 아닌 5라는 신기한 사실)

제가 사용하는 환경은 Apache/1.3.31 (Win32) PHP/4.3.6입니다.
웹브라우저는 IE 5.5이고요.


PHP에서 substr()에 8bit문자의 처리를 추가한 걸까요??
아시는 분 있으면 코멘트 달아주세요.




참..혹시 한글 깨지지 않고 잘라주는 함수 필요하신분 아래 함수 참고하세요.
허접이지만 제가 만들어 봤습니다.


// $strOrigin : 잘라줄 문자열         $intLen: 자를 길이
function cut_str($strOrigin, $intLen)
{
        // 빈 문자열이거나, 길이가 0이면 false 리턴.
        if($strOrigin == "" || $intLen == 0)
                return false;

        // 문자열의 길이보다 자를 길이가 길면, 원래 문자열을 그대로 리턴
        if(strlen($strOrigin) <= $intLen)
                return $strOrigin;
        else
        {
                $strTemp = substr($strOrigin, 0, $intLen);

                // 자를 길이가 홀수이고 문자열이 영문자가 아닐 경우엔, 마지막 부분을 추가로 제거
                if(($intLen % 2) == 1 && ord(substr($strTemp, -1, 1)) >= 128)
                        $strTemp = substr($strTemp, 0, -1);

                return $strTemp;
        }
}
제목 글쓴이 날짜
개판 오분전 라인 그래프 [4] 미친개 2004.12.01
실명 진위여부 확인 [10] piasol 2004.12.01
나만의 미니홈 만들기 ㅡ write.php 파일과 write_ok [5] 예뜨락 2004.11.30
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크 [9] file 예뜨락 2004.11.27
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성 [6] file 예뜨락 2004.11.26
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새 [6] 예뜨락 2004.11.23
나만의 미니홈 만들기 ㅡ 게시판의 디자인 file 예뜨락 2004.11.22
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지 [3] file 예뜨락 2004.11.20
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지 [3] file 예뜨락 2004.11.20
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃 [2] file 예뜨락 2004.11.19
나만의 미니홈 만들기 ㅡ 메인 기초 설계2 .레이아웃 예뜨락 2004.11.18
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] 예뜨락 2004.11.17
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] 타키 2004.10.24
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] 타키 2004.10.23
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] 타키 2004.10.23
www자동 붙히기 [8] 미오유 2004.10.22
IP to 정수변환(;) [4] 플로렐라 2004.10.21
한글자르는 문제 PHP차원에서 해결된 건가? [5] 겜방 2004.10.20
MySQL의 패턴 매칭 맛보기 [2] 손상모 2004.10.19
그래프 만들어주는 소스 [10] 미친개 2004.10.15