반응형
//한글,영문 구분하지 않고 길이대로 짜르기 function my_substr($str,$start,$max_len) { $arrayString=getArrayString($str); $count=0; for($i=0;$i=$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;$i 127 && $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("원하는문자열",길이);
for ($x=1; $x<35;$x++) { echo "$x : ".str_cutting("테스트문장 입니다. 잘되지요;;",$x)."
"; } //여기까지는 예제 입니다 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 |