PHP 字符截取 解决中文的截取问题,不用mb系列

yipeiwu_com4年前PHP代码库
复制代码 代码如下:

function Cut_string($string, $start ,$sublen, $extstring='...', $code = 'UTF-8') {//Cut_string开始
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)).$extstring;
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.= $extstring;
return $tmpstr;
}
} //Cut_string结束

相关文章

PHP new static 和 new self详解

PHP new static 和 new self详解

最近在一个视频的评论被问到一个小问题:这里选择用static 而不是self有特殊的考虑么?或者我们可以这样转换一下问题: PHP 的 new static 和 new self 具体有...

PHP6 中可能会出现的新特性预览

  这些特性包括:     集成OpCache(OPcache通过对PHP的opcode进行缓存和优化,可以提高PHP程序的执行速度) ...

PHP实现顺时针打印矩阵(螺旋矩阵)的方法示例

本文实例讲述了PHP实现顺时针打印矩阵的方法。分享给大家供大家参考,具体如下: 问题 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:...

php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法

复制代码 代码如下: <?php // 说明:获取 _SERVER['REQUEST_URI'] 值的通用解决方案 function request_uri() { if (iss...

PHP实现的文件上传类与用法详解

本文实例讲述了PHP实现的文件上传类与用法。分享给大家供大家参考,具体如下: FileUpload.class.php,其中用到了两个常量,可在网站配置文件中定义:define('ROO...