>php教程 >PHP源码 >截取字符串长度(不区分中英文字符长度)

截取字符串长度(不区分中英文字符长度)

PHP中文网
PHP中文网원래의
2016-05-25 17:12:521067검색

跳至

static function tran($string,$length=0,$str='',$etc='...'){
	$result = '';

$string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'utf-8');

for($i = 0, $j = 0; $i < strlen($string); $i++)
{
if($j >= $length)
{
for($x = 0, $y = 0; $x < strlen($etc); $x++)
{
if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, &#39;0&#39;, STR_PAD_LEFT), &#39;0&#39;))
{
$x += $number - 1;
$y++;
}
else
{
$y += 0.5;
}
}

$length -= $y;

break;
}

if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, &#39;0&#39;, STR_PAD_LEFT), &#39;0&#39;))
{
$i += $number - 1;
$j++;
}
else
{
$j += 0.5;
}
}

for($i = 0; (($i < strlen($string)) && ($length > 0)); $i++)
{
if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, &#39;0&#39;, STR_PAD_LEFT), &#39;0&#39;))
{
if($length < 1.0)
{
break;
}

$result .= substr($string, $i, $number);

$length -= 1.0;

$i += $number - 1;
}
else
{
$result .= substr($string, $i, 1);

$length -= 0.5;
}
}

$result = htmlentities($result, ENT_QUOTES, &#39;utf-8&#39;);

if($i < strlen($string))
{
$result .= $etc;
}
	if(!empty($str)){
		return $result;
	}
	else{
		echo $result;
	}
}

}

                   

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.