웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
한글자르는 문제 PHP차원에서 해결된 건가?
2004.10.20 11:37
오늘 우연히 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;
}
}
재밌는 현상을 목격했습니다. ^^
<?
$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;
}
}
댓글 5
제목 | 글쓴이 | 날짜 |
---|---|---|
개판 오분전 라인 그래프 [4] | 미친개 | 2004.12.01 |
실명 진위여부 확인 [10] | piasol | 2004.12.01 |
나만의 미니홈 만들기 ㅡ write.php 파일과 write_ok [5] | 예뜨락 | 2004.11.30 |
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크
[9]
![]() | 예뜨락 | 2004.11.27 |
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성
[6]
![]() | 예뜨락 | 2004.11.26 |
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새 [6] | 예뜨락 | 2004.11.23 |
나만의 미니홈 만들기 ㅡ 게시판의 디자인
![]() | 예뜨락 | 2004.11.22 |
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지
[3]
![]() | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지
[3]
![]() | 예뜨락 | 2004.11.20 |
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃
[2]
![]() | 예뜨락 | 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 |