Heim > Backend-Entwicklung > PHP-Tutorial > php支持gb2312,uft-8中英文字符截取函数

php支持gb2312,uft-8中英文字符截取函数

PHP中文网
Freigeben: 2016-07-13 10:54:45
Original
800 Leute haben es durchsucht

php教程支持gb2312,uft-8中英文字符截取函数

<?php
//截取gb2312中文字符串
function mysubstr($str, $start, $len) {
    $tmps教程tr = "";
    $strlen = $start + $len;
    for($i = 0; $i < $strlen; $i++) {
        if(ord(substr($str, $i, 1)) > 0xa0) {
            $tmpstr .= substr($str, $i, 2);
            $i++;
        } else
            $tmpstr .= substr($str, $i, 1);
    }
    return $tmpstr;
}
?>
<?php
//截取utf8字符串
function utf8substr($str, $from, $len)
{
    return preg_replace(&#39;#^(?:[x00-x7f]|[xc0-xff][x80-xbf]+){0,&#39;.$from.&#39;}&#39;.
                       &#39;((?:[x00-x7f]|[xc0-xff][x80-xbf]+){0,&#39;.$len.&#39;}).*#s&#39;,
                       &#39;$1&#39;,$str);
}
?>
Nach dem Login kopieren

把上面两个例子整合了

<?php
/*
utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/
 
function cut_str($string, $sublen, $start = 0, $code = &#39;utf-8&#39;)
{
    if($code == &#39;utf-8&#39;)
    {
        $pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
        preg_match_all($pa, $string, $t_string);
 
        if(count($t_string[0]) - $start > $sublen) return join(&#39;&#39;, array_slice($t_string[0], $start, $sublen))."...";
        return join(&#39;&#39;, array_slice($t_string[0], $start, $sublen));
    }
    else
    {
        $start = $start*2;
        $sublen = $sublen*2;
        $strlen = strlen($string);
        $tmpstr = &#39;&#39;;
 
        for($i=0; $i< $strlen; $i++)
        {
            if($i>=$start && $i< ($start+$sublen))
            {
                if(ord(substr($string, $i, 1))>129)
                {
                    $tmpstr.= substr($string, $i, 2);
                }
                else
                {
                    $tmpstr.= substr($string, $i, 1);
                }
            }
            if(ord(substr($string, $i, 1))>129) $i++;
        }
        if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
        return $tmpstr;
    }
}
 
$str = "abcd需要截取的字符串";
echo cut_str($str, 8, 0, &#39;gb2312&#39;);
?>
Nach dem Login kopieren


http://www.bkjia.com/PHPjc/632297.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632297.htmlTechArticlephp教程支持gb2312,uft-8中英文字符截取函数 ?php //截取gb2312中文字符串 function mysubstr($str, $start, $len) { $tmps教程tr = ; $strlen = $start + $len; for($i...


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage