반응형
이 글은 씽크피프5에서 문자열을 캡처하는 두 가지 방법(코드)에 대한 소개로 참고가 되므로 도움이 되시기를 바랍니다.
공통의 comon.php에서
방법 1
//문자열 캡쳐
function cut_str($sourcestr,$cutlength)
{
$returnstr='';
$i=0;
$n=0;
$str_length=strlen($sourcestr);//문자열의 바이트 수
while (($n<$cutlength) and ($i<=$str_length))
{
$temp_str=substr($sourcestr,$i,1);
$ascnum=Ord($temp_str);//문자열의 $i비트 문자에 대한 ascii 코드를 가져옵니다
if ($ascnum>=224) //ASCII가 224위보다 높으면,
{
$returnstr=$returnstr.substr($sourcestr,$i,3); //UTF-8 부호화 규격에 따라 3개의 연속된 문자를 단일 문자로 계상한다
$i=$i+3; //실제 Byte는 3입니다
$n++; //문자열 길이계 1
}
elseif ($ascnum>=192) //ASCII가 192보다 높으면,
{
$returnstr=$returnstr.substr($sourcestr,$i,2); //UTF-8 부호화 규격에 따라 두 개의 연속된 문자를 단일 문자로 계상한다
$i=$i+2; //실제 Byte는 2입니다
$n++; //문자열 길이계 1
}
elseif ($ascnum>=65 && $ascnum<=90) //이니셜이면,
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1; //실제 바이트 수는 여전히 1개이다
$n++; //그러나 전체적인 미관을 고려하여 대문자는 하나의 높은 자로 하였다
}
else //기타 경우 소문자와 반각 구두점을 포함한다,
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1; //실제 바이트 수는 1개
$n=$n+0.5; //소문자와 반각 구두점 등 상위 반 글자 너비...
}
}
if ($str_length>$i){
$returnstr = $returnstr . "...";//길이 초과 시 끝에 줄임표 붙임
}
return $returnstr;
}
방법2:
//문자열이 생략 부호 이상으로 잘라내기
function subtext($text, $length)
{
if(mb_strlen($text, ‘utf8’) > $length)
return mb_substr($text,0,$length,’utf8′).’ …’;
return $text;
}
템플릿에서 호출하는 방법:
{$tops.title | subtext=18}
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 구현은 혼합 인증 코드와 이미지 인증 코드를 생성하고 테스트한다(코드) (0) | 2022.07.25 |
---|---|
TP5 프레임워크에서 재귀적 무한 등급 구현 방법 (0) | 2022.07.25 |
php 인터페이스 보안: php 인터페이스 암호화를 위한 네 가지 시나리오 (0) | 2022.07.25 |
php는 open, fwrite를 이용하여 다양한 형식의 파일(코드)을 내보냅니다 (0) | 2022.07.25 |
php 내보내기csv 형식의 Excel 파일 구현 코드 (0) | 2022.07.25 |