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

PHP
PHP程序员的优化调试技术和技巧
PHP实现简单线性回归之数学库的重要性
用PHP读取和编写XML DOM
PHP实现简单线性回归之数据研究工具
在PHP中开发XML应用程序之基础篇
PHP加密文本文件并限制特定页面的存取
PHP强制对象类型之instanceof操作符
通过PHP和Sajax使用Ajax之JavaScript
WAP与PHP程序设计之基础篇
PHP5 OOP编程之代理与定制异常
PHP5 OOP编程中的代理与异常定制
PHP+MySQL应用中使用XOR运算加密算法
使用PHP和AJAX的XML编程
利用PHP+JavaScript打造AJAX搜索窗
结合AJAX进行PHP开发之入门
结合AJAX的PHP开发之后退、前进和刷新
用PHP控制您的浏览器cache
五个常见 PHP 数据库问题
深入探讨PHP中的内存管理问题
用PHP构建一个简易监视引擎

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 214 ::
收藏到网摘: 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') ;
?>