반응형
//한글,영문 구분하지 않고 길이대로 짜르기
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;$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("원하는문자열",길이);
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 |