Heim  >  Artikel  >  php教程  >  字符串截取函数

字符串截取函数

PHP中文网
PHP中文网Original
2016-05-25 17:04:411034Durchsuche

php代码

<?php

/**
+----------------------------------------------------------
* 字符串截取,支持中文和其他编码
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $str     需要转换的字符串
* @param string $start   开始位置
* @param string $length  截取长度
* @param string $charset 编码格式
* @param string $suffix  截断显示字符
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
    // 加载php_mbstring扩展时有效
    if (function_exists("mb_substr"))
        return mb_substr($str, $start, $length, $charset);
    // PHP 5+版本有效
    if (function_exists("iconv_substr"))
        return iconv_substr($str, $start, $length, $charset);

    $re[&#39;utf-8&#39;] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
    $re[&#39;gb2312&#39;] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
    $re[&#39;gbk&#39;] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
    $re[&#39;big5&#39;] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
    preg_match_all($re[$charset], $str, $match);
    $slice = implode("", array_slice($match[0], $start, $length));
    if ($suffix)
	    return $slice."...";
    else
	    return $slice;
}

// for test

$mouse = &#39;我是中国人!&#39;;
echo msubstr($mouse, 0, 5);	// print &#39;我是中国人...&#39;

Stellungnahme:
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