php中文字串擷取函式支援多種編碼

2021-08-27 09:58:39 字數 922 閱讀 4255

為大家提供乙個可以支援多種編碼的中文字串擷取函式,有需要的朋友,可以研究下。

<?php

/** @todo 中文擷取,支援gb2312,gbk,utf-8,big5

* @link: 指令碼學堂

* @param string $str 要擷取的字串

* @param int $start 擷取起始位置

* @param int $length 擷取長度

* @param string $charset utf-8|gb2312|gbk|big5 編碼

* @param $suffix 是否加尾綴

*/function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

|[\xf0-\xff][\x80-\xbf]/";

$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";

$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";

$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";

preg_match_all($re[$charset], $str, $match);

$slice = join("",array_slice($match[0], $start, $length));

if($suffix) return $slice."…";

return $slice;

}?>

以上**,看著就牛x,要知道php的正則,那是相當強悍的。

複製以上**,在你的機器上測試下吧,多動手,有助於快速提高程式設計水平。

PHP中文字串擷取函式

首先是csdn論壇php斑竹xuzuning 嘮叨 老大的,支援gb2312,gbk,big三種編碼。以下是 len 19 text 怎麼將新聞的很長的標題只顯示前面一些字,後面用.來代替?echo strlen text len text substr text,0,len chr 0 chr 0...

php中文字串擷取多種方法彙總

1.擷取gb2312中文字串 php php 擷取中文字串 function mysubstr str,start,len else tmpstr substr str,i,1 return tmpstr 2.擷取utf8編碼的多位元組字串 擷取utf8字串 function utf8substr ...

多個PHP中文字串擷取函式

如下 else elseif ord stringtmp 192 else stringlast stringtmp stringlast implode stringlast return stringlast string 簡明現代魔法 專注於網際網路主流的各種技術 length 27 輸出 簡...