본문 바로가기

Programming

문자열 자르는 다양한 방법 (한글,영문구분)

반응형

=$max_len) break; 
                if($i>=$start){ 
          $return_str.=$arrayString[$i]; 
                $count++; 
                } 
        } 
        return (count($arrayString)>$max_len)?$return_str."..":$str; 
} 

//바이트 개산 배열 
function getArrayBytes($str) 
{ 
  $byte1=0; //2바이트 문자의 첫번째 바이트 
  $byte2=0; //2바이트 문자의 두번쨰 바이트 
  for($i=0;$i127 && $byte1==0){ //2바이트 문자중 한 바이트이고 첫번쨰 바이트가 없다면 
                          $byte2=0; //두번째 바이트는 없고 
                      $byte1=1; //첫번째 바이트는 있다 
                }else if(ord($str[$i])<=127){ 
                     $byte1=0; 
                         $byte2=0; 
                } 
                 
                if($byte2==1) //2바이트 문자의 두번째 바이트가 있다면 
                        $byte1=0; //첫번째 바이트는 없다. 
           $bytes[$i]=$byte1.$byte2; 
        } 

        return $bytes; 
} 
//바이트을 무시한 문자열 배열 
function getArrayString($str){ 
  $bytes=getArrayBytes($str); 
  $k=0; 
  for($i=0;$i"뮤직a"가 출력됩니다.. 
?> 

문자열 뒤에서 부터 자르기
for($i=1;$i<=25;$i++)
{
echo back_cut("문자열을 뒤에서부터 자르기", $i)."\n
"; } function back_cut($str,$len,$head="") { if(strlen($str)<=$len) { return $str; } $str2=substr($str,$len*-1); $size=strlen($str2); for($i=$size,$j=1;$j<=$size;$i--) { $chr=substr($str2,$j*-1,1); if(ord($chr)>127) { $j++; $chr=substr($str,$j*-1,1).$chr; } $result=$chr.$result; $j++; } return $head.$result; }

정규식을 이용한 문자열 자르기
str_cutting("원하는문자열",길이);


"; 
    } 
    //여기까지는 예제 입니다 

    
    function str_cutting($str, $len){ 
       //먼저 무조건 자르고 
       //한글이 아닌건 한글자씩 세고 다른건 두글자씩 센다 
       preg_match('/([\x00-\x7e]|..)*/', substr($str, 0, $len), $rtn); 


       //원래 글 길이가 길면 점점점을 붙여준다(이 아랫줄은 선택) 
       if ( $len < strlen($str) ) $rtn[0].="..."; 
        
       return $rtn[0]; 
    } 

?>
반응형

'Programming' 카테고리의 다른 글

양력<->음력 변환  (0) 2011.01.10
PHPMySQL API 함수  (0) 2011.01.10
자주 사용 하는 함수 모음  (0) 2011.01.10
PHP 제어문 정리  (0) 2011.01.10
PHP 연산자 정리  (0) 2011.01.10