'php 문자 자르기'에 해당되는 글 3건
- 2015.08.23 php 마지막 문자 자르기 / 문자 제거 / 문자열 삭제 / substr 함수 / 문자 찾기 / 문자열 자르기
- 2013.12.12 php 한글 문자열 자르기
- 2013.12.11 php 한글을 포함한 문자열 자르기 함수 mb_strcut()
<?
// 문자열 자르기
function cut_str($str, $len, $suffix = '')
{
$str = strip_tags(stripslashes(trim($str)));
if(strlen($str) > $len)
{
$cnt = 0;
$len2 = $len;
$str2 = '';
for($i = 0; $i < $len2 ; $i++)
{
$cut = ord(substr($str, $i, 1));
if($cut > 127)
{
$cnt++;
$str2 .= substr($str, $i, 2);
$i++;
$len2++;
}
else
{
$str2 .= substr($str, $i, 1);
}
}
}
return $str = $str2 . $suffix;
}
// 사용 예
$ary[] = "홍길동이다";
$ary[] = "honghong";
$ary[] = "11길동01";
$ary[] = "길1동2이3";
$ary[] = "길12동2이3";
$ary[] = "길동122이3";
$ary[] = "abcde";
$ary[] = "고두";
$ary[] = "12341324고두";
$ary[] = "\'\*\":;#!";
$ary[] = "\"홍길동\"";
foreach($ary as $k => $v)
{
echo "<br />" . $v . " / " . cut_str($v, 3, '..');
}
?>
한글을 포함한 문자열의 일부를 추출할 때,
2바이트 문자의 한바이트만이 들어올 수 있는 문제의 해결은
PHP에서 지원하는 Multibyte String 관련 함수를 사용하는 것이 가장 간단하다.
string mb_strcut ( string $str , int $start [, int $length [, string $encoding ]] )
- $start 의 위치가 2바이트문자의 두번째 바이트에 위치하고 있으면 한 바이트 앞에서 시작함.
- $length 만큼 자르고, 마지막 바이트가 2바이트 문자의 첫번째 바이트이면 그 앞에서 자른다.
예제)
echo mb_strcut('테스트', 0, 3, 'euc-kr');
==> 테
* PHP 설치시 --enable-mbstring 옵션을 주어야 함.