1. 云栖社区>
  2. PHP教程>
  3. 正文

php字符串截取的代码学

作者:用户 来源:互联网 时间:2017-12-01 19:58:29

字符串

php字符串截取的代码学 - 摘要: 本文讲的是php字符串截取的代码学, 1、截取utf8字符串 代码如下:<?php//截取utf8字符串function utf8Substr($str, $from, $len) {return preg_replace('#^(?:[/x00-/x7F]|[/xC0

1、截取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);
 }
?>

2、UTF-8、GB2312都支持的汉字截取函数
 

代码如下:<?php
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');
?>

3、BugFree 的字符截取函数
 

代码如下:<?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 = "CodeBit.cn -- 简单、精彩、通用";
$Length = "18";
$Append = false;
echo sysSubStr($String,$Length,$Append);
?>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串 ,以便于您获取更多的相关知识。