UTF-8 문자열 자르기 mb_substr() iconv_substr() mb_strimwidth
로빈아빠
본문
mb_substr()
없으면
iconv_substr()
안되면
밑
//==================================================
// utf8 전용 문자열 처리함수
//==================================================
//===== utf8문자열을 배열로 만든다.
function utf8String2Array($str){
$re_arr = array(); $re_icount = 0;
for($i=0,$m=strlen($str);$i<$m;$i++){
$ch = ord($str{$i});
if($ch<128){$re_arr[$re_icount++]=substr($str,$i,1);}
else if($ch<224){$re_arr[$re_icount++]=substr($str,$i,2);$i+=1;}
else if($ch<240){$re_arr[$re_icount++]=substr($str,$i,3);$i+=2;}
else if($ch<248){$re_arr[$re_icount++]=substr($str,$i,4);$i+=3;}
}
return $re_arr;
}
//===== utf8문자열을 잘라낸다.
function utf8Substr($str,$start,$length=NULL){
return implode('',array_slice(php_fn_utf8_to_array($str),$start,$length));
}
//===== utf8문자열의 길이를 구한다.
function utf8Strlen($str){
return count(php_fn_utf8_to_array($str));
}
//===== mb 함수가 지원안될 때
if(!function_exists(mb_substr)){
function mb_strlen($str,$encoding='UTF-8'){
return utf8Strlen($str);
}
function mb_substr( $str, $start ,$length=null ,$encoding='utf-8'){
return utf8Substr($str,$start,$length);
}
}
------------------------------- 추가 --------------------------
if(!function_exists(cut_str_width)){
function cut_str_width($str, $len, $suffix="…")
{
$s = mb_strimwidth($str, 0, $len,$suffix,"utf-8"); // PHP5용 함수 UTF-8 짜르기
return $s . $suffix;
}
}
없으면
iconv_substr()
안되면
밑
//==================================================
// utf8 전용 문자열 처리함수
//==================================================
//===== utf8문자열을 배열로 만든다.
function utf8String2Array($str){
$re_arr = array(); $re_icount = 0;
for($i=0,$m=strlen($str);$i<$m;$i++){
$ch = ord($str{$i});
if($ch<128){$re_arr[$re_icount++]=substr($str,$i,1);}
else if($ch<224){$re_arr[$re_icount++]=substr($str,$i,2);$i+=1;}
else if($ch<240){$re_arr[$re_icount++]=substr($str,$i,3);$i+=2;}
else if($ch<248){$re_arr[$re_icount++]=substr($str,$i,4);$i+=3;}
}
return $re_arr;
}
//===== utf8문자열을 잘라낸다.
function utf8Substr($str,$start,$length=NULL){
return implode('',array_slice(php_fn_utf8_to_array($str),$start,$length));
}
//===== utf8문자열의 길이를 구한다.
function utf8Strlen($str){
return count(php_fn_utf8_to_array($str));
}
//===== mb 함수가 지원안될 때
if(!function_exists(mb_substr)){
function mb_strlen($str,$encoding='UTF-8'){
return utf8Strlen($str);
}
function mb_substr( $str, $start ,$length=null ,$encoding='utf-8'){
return utf8Substr($str,$start,$length);
}
}
------------------------------- 추가 --------------------------
if(!function_exists(cut_str_width)){
function cut_str_width($str, $len, $suffix="…")
{
$s = mb_strimwidth($str, 0, $len,$suffix,"utf-8"); // PHP5용 함수 UTF-8 짜르기
return $s . $suffix;
}
}
관련링크
댓글목록
등록된 댓글이 없습니다.