보험최저가로 가입하는요령 쉬운 돈벌기 방법
php에서 한글 자르기
utf-8 한글을 자르기 위한 함수입니다.원본몇일전 제로보드를 utf-8 환경으로 컨버팅 한적이 있는데. function kstring_cut($msg,$cut_size) { if($cut_size<=0) return $msg; if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4; $max_size = $cut_size; $i=0; while(1) { if (ord($msg[$i])>127) $i+=3; else $i++; if (strlen($msg) < $i) return $msg; if ($max_size == 0) return substr($msg,0,$i)."..."; else $max_size--; } } |
| $label = kstring_cut ($문자열변수,가져올 문자열 길이) echo $label; function kstring_cut ($lbl, $length) { preg_match('/([\x00-\x7e]|..)*/', substr($lbl,0,$length), $return); //먼저 자르고 한글 아닌 것은 두글자씩 나머지는 영문기준 한 글자씩 처리한다. if ( $length < strlen($lbl) ) $return[0].="..."; //문자열이 길면 " ... " 을 붙인다. return $return[0]; } // 마퀴태크 <marquee> 사이에서 최근 공지 게시글을 뽑아오는 문제를 해결하는 과정에서 사용하였다. 한글과 같이 2바이트 문자열을 쓰는 경우 물음표(?)가 출력되어 버리는데, 맨 끝의 문자열이 2바이트중 절반인 1바이트만 가져오게 되어 발생하는 문제점이다. 2바이트가 되어야 문자조립이 되는데 반만 가져왔으니 글자 조립이 될 수 없기 때문이다. 따라서 2바이트 문자열을 사용하는 사이트에서 지정한 갯수만큼 문자열을 가져올 때는 위의 구문을 사용하면 된다. 영문자만 사용할 경우 단순하게 substr($문자열변수, 시작위치, 가져올글자수); 하면 된다. 그러나 이런 경우도 특수문자를 쓰는 경우라면 위 구문을 사용하거나 다른 형태의 사용자 함수를 만들어 써야 할 것이다. |
1.
<?
function LongCut($s, $l)
{
if( strlen($s) <= ($l+3))
return $s;
if( ord($s[$l-1]) > 127 ) { //ord -> ascii 체크. 127 초과면 한글
$nc = 2;
while( ord($s[$l-$nc]) > 127 ) $nc++;
$l -= !($nc & 1);
}
return substr($s, 0, $l) . "...";
}
?>
2.
<?
function han_cut($val,$cut_len){ //$val 자를 문자열, $cut_len 원하는 문자열길이
$tot_len = strlen($val);
$cut_str = substr($val,0,$cut_len);
$len = strlen($cut_str);
for($x=0;$x < $len;$x++){
if(ord($val[$x]) > 127) { $hanlen++; }
else{ $englen++; }
}
$cut_gap = $hanlen % 2;
if($cut_gap == 1){ $hanlen--; }
$length=$hanlen + $englen;
if($tot_len > $length){ return substr($val,0,$length)."..."; }
else{ return substr($val,0,$length); }
}
?>
태초에 나는 개그이야기를 만들었다.
내말을 믿고 나를 따르면 천당,
내말을 믿지않고 나를 따르지 않으면 지옥,
나는 하늘나라(우주)에 사느니라.
그럼 난 외계인?



웃대가리
