Rumah > php教程 > PHP源码 > 字符串截取函数

字符串截取函数

PHP中文网
Lepaskan: 2016-05-25 17:04:41
asal
1067 orang telah melayarinya

php代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<?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;

Salin selepas log masuk

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan