cut_str 코드 좀 이상해요. 정보
cut_str 코드 좀 이상해요.본문
common.lib.php에 있는 문자열자르기 함수 cut_str()을 보다가 코드 해석은 했는데, 이렇게까지 복잡하게 코딩할 필요가 있을까 싶은 의문에 이해가 좀 안가서 질문을 올립니다.
UTF-8 부분에 대해 위와같이 되어있는데,
아래와 같이 단순화 될 수 있지 않나요?
$c 값을 내기 위해서 매번 substr(), str_pad(), decbin(), ord() 4개의 함수를 사용하는데 비해 ord()하나만 사용하면 되고, 이게 for loop에 걸리는 걸 감안해보면 연산량이 꽤 차이날 것 같은데요.
고수님들의 의견을 부탁드립니다.
if (strtoupper($g4['charset']) == 'UTF-8') {
$c = substr(str_pad(decbin(ord($str{$len})),8,'0',STR_PAD_LEFT),0,2);
if ($c == '10')
for (;$c != '11' && $c{0} == 1;$c = substr(str_pad(decbin(ord($str{--$len})),8,'0',STR_PAD_LEFT),0,2));
return substr($str,0,$len) . (strlen($str)-strlen($suffix) >= $len ? $suffix : '');
UTF-8 부분에 대해 위와같이 되어있는데,
아래와 같이 단순화 될 수 있지 않나요?
if (strtoupper($g4['charset']) == 'UTF-8') {
$c = ord($str{$len});
while ($c > 127 && $c < 192) $c = ord($str{--$len});
return substr($str,0,$len) . (strlen($str)-strlen($suffix) >= $len ? $suffix: '');
$c 값을 내기 위해서 매번 substr(), str_pad(), decbin(), ord() 4개의 함수를 사용하는데 비해 ord()하나만 사용하면 되고, 이게 for loop에 걸리는 걸 감안해보면 연산량이 꽤 차이날 것 같은데요.
고수님들의 의견을 부탁드립니다.
댓글 전체