`
gzycnet
  • 浏览: 31191 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

PHP截取字符串,支持UTF-8、GB2312、GBK多种字符集

PHP 
阅读更多
PHP截取字符串,用函数截取字符串的专题,支持UTF-8、GB2312、GBK多种字符集。
截取GB2312中文字符串
<?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;
}
?>

截取utf8编码的多字节字符串
<?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);
}
?>

UTF-8、GB2312都支持的汉字截取函数
<?php
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 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);
?>

PHP字符截取函数
<?php
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 = " 简单、精彩、通用";
$Length = "18";
$Append = false;
echo sysSubStr($String,$Length,$Append);
?>

分享到:
评论

相关推荐

    php中截取字符串支持utf-8

    php中截取字符串支持utf-8

    PHP 字符串编码截取函数(兼容utf-8和gb2312)

    支持utf-8和gb2312编码。若为gb2312,先将其转为utf-8,在utf-8的基础上截取然后再转换回来 function cut_string($str,$from=1,$length=10,$code=’utf-8′,$rear=’…’){ if($code!=’utf-8′){//总是将字符串转为...

    PHP 截取字符串函数整理(支持gb2312和utf-8)

    常见的 PHP 截取字符串函数整理,支持gb2312和utf-8编码,方法php开发中需要用到截取字符串的问题。

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等 oracle汉字转拼音package_获得全拼—GBK—拼音首字母_拼音截取 oracle汉字转拼音package_获得全拼—UTF8—拼音首字母_拼音截取 还实例。

    Substring字符串截取-kaic

    substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 ...

    CString 截取字符串

    CString截取字符串全攻略 - fox的日志 - 网易博客.mht

    PHP正确解析UTF-8字符串技巧应用

    在《学习PHP&MYSQL之——字符编码篇(一)》中介绍了Unicode与UTF-8的转换关系,总结了一个UTF-8的... /* $str 是待截取的字符串 $len 是截取的字符数 */ function utf8sub($str,$len) { if($len &lt;= 0){ return ”;

    PHP UTF-8 等宽度截取中英文字符.txt

    PHP UTF-8 等宽度截取中英文字符.txt

    详解C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子...

    截取字符串

    这个小demo是截取字符串的,有2个代码,还有取消字符串中的空格,可以看看。

    SQL截取字符串函数

    SQL截取字符串函数(1、截取从字符串左边开始N个字符 2、截取从字符串右边开始N个字符(例如取字符www.163.com) 3、截取字符串中任意位置及长度 等等)

    截取指定长度的字符串

    自己输入一个字符串,字符串中可以包括字符和汉字,截取指定的字符串

    js截取字符串-三种方法

    js截取字符串 substr() 方法能够根据指定长度来截取子字符串。它包含两个参数,第一个参数 表示准备截取的子字符串起始下标,第二个参数表示截取的长度。 示例 1 在下面示例中使用 lastIndexOf() 获取字符串的最后一...

    用SQL语句截取字符串

    用SQL语句截取字符串, string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始) 参数3:截取的字符数量

    oracle按特定字符截取字符串

    oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果

    php 截取utf-8格式的字符串实例代码

    主要介绍了php 截取utf-8格式的字符串实例代码的相关资料,并附实例代码,需要的朋友可以参考下

    C# 按照字节长度截取字符串

    C# 按照字节长度截取字符串,可以截取任意字节长度得字符串,使用了一点正则表达式。

Global site tag (gtag.js) - Google Analytics