当前位置: 首页 > 图文教程 > 网络编程 > PHP > php中截取字符串支持utf-8

PHP
PHP常用代码
小偷PHP+Html+缓存
PHP 常见郁闷问题答解
上传多个文件的PHP脚本
详解::如何将图片储存在数据库里
PHP生成静态页面详解
[PHP]模板引擎Smarty深入浅出介绍
PHP语法速查表
一些常用的php函数
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
PHP经典的给图片加水印程序
PHP 字符串操作入门教程
source.php查看源文件
main.php
Php部分常见问题总结
[PHP] 《PHP边学边教》(01.开篇:准备工作)
《PHP边学边教》(02.Apache+PHP环境配置:上篇)
《PHP边学边教》(02.Apache+PHP环境配置:下篇)
傻瓜化配置PHP环境:Appserv
《PHP边学边教》(04.编写简易的通讯录:视频教程1)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 164 ::
收藏到网摘: n/a

截取字符串
<?php
$string="2006年4月我又长大了一岁!";
echo substr($string,1)."...";
//截取字符串
function SubstrGB($in,$num)
{
$pos=0;
$out="";
while($pos<strlen($in))
{
$c=substr($in,$pos,1);
if($c=="\n") break;
if(ord($c)>128)
{
$out.=$c;
$pos++;
$c=substr($in,$pos,1);
$out.=$c;
}
else
{
$out.=$c;
}
$pos++;
if($pos>=$num) break;
}
return $out;
}
echo SubstrGB($string,8) ;
?>
<?php
/***************************************************************************
* cut_string.php
* ------------------------------
* Date : Jul 16, 2005
* Copyright : none
* Mail :
*
* 作用:截取中文字符.
*
*
***************************************************************************/
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;
}
}
echo "<br>".cut_str($string,8,$start=0,$code='sdf') ;
?>