国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php 截取中文

2024-05-04 21:52:46
字體:
供稿:網(wǎng)友
<?php
< ?php
//截取中文字符串
function mysubstr(str, start, len) {
tmpstr = "";
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;
}
?>

2. 截取utf8編碼的多字節(jié)字符串
<?php
< ?php
//截取utf8字符串
function utf8Substr(str, from, len)
{
return preg_replace('#^(?:[/x00-/x7F]|[/xC0-/xFF][/x80-/xBF]+){0,'.from.'}'.
'((?:[/x00-/x7F]|[/xC0-/xFF][/x80-/xBF]+){0,'.len.'}).*#s',
'1',str);
}
?>

3. UTF-8、GB2312都支持的漢字截取函數(shù)
<?php
< ?php
/*
Utf-8、gb2312都支持的漢字截取函數(shù)
cut_str(字符串, 截取長度, 開始長度, 編碼);
編碼默認(rèn)為 utf-8
開始長度默認(rèn)為 0
*/

function cut_str(string, sublen, start = 0, code = 'UTF-8')
{
if(code == 'UTF-8')
{
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('', array_slice(t_string[0], start, sublen))."...";
return join('', array_slice(t_string[0], start, sublen));
}
else
{
start = start*2;
sublen = sublen*2;
strlen = strlen(string);
tmpstr = '';

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, 'gb2312');
?>

4. BugFree 的字符截取函數(shù)
<?php
< ?php
/**
* @package BugFree
* @version Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp
*
*
* Return part of a string(Enhance the function substr())
*
* @author Chunsheng Wang <wwccss@263.net>
* @param string String the string to cut.
* @param int Length the length of returned string.
* @param booble Append whether append "...": false|true
* @return string the cutted string.
*/
function sysSubStr(String,Length,Append = false)
{
if (strlen(String) < = Length )
{
return String;
}
else
{
I = 0;
while (I < Length)
{
StringTMP = substr(String,I,1);
if ( ord(StringTMP) >=224 )
{
StringTMP = substr(String,I,3);
I = I + 3;
}
elseif( ord(StringTMP) >=192 )
{
StringTMP = substr(String,I,2);
I = I + 2;
}
else
{
I = I + 1;
}
StringLast[] = StringTMP;
}
StringLast = implode("",StringLast);
if(Append)
{
StringLast .= "...";
}
return StringLast;
}
}

String = "CodeBit.cn -- 簡單、精彩、通用";
Length = "18";
Append = false;
echo sysSubStr(String,Length,Append);
?>

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高州市| 巨野县| 白河县| 连城县| 阿坝县| 会东县| 新竹县| 洛扎县| 夏津县| 专栏| 武平县| 遵义市| 大港区| 鄄城县| 青神县| 嘉鱼县| 唐海县| 新沂市| 桦南县| 洪泽县| 花莲县| 宝山区| 辽阳县| 安宁市| 邵武市| 财经| 景泰县| 龙门县| 高碑店市| 左权县| 兴安县| 阿坝| 常山县| 高唐县| 龙海市| 四平市| 龙陵县| 乌拉特后旗| 常州市| 即墨市| 临猗县|