多个PHP中文字符串截取函数
2023-06-13 09:15:11 时间
<?php
functionsysSubStr($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="27";
$append=true;
echosysSubStr($string,$length,$append);
//输出
//简明现代魔法——专...
?>
截取GB2312中文字符串:
<?php
//截取中文字符串
functionmysubstr($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字符串
functionutf8Substr($str,$from,$len)
{
returnpreg_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
*/
functioncut_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)returnjoin("",array_slice($t_string[0],$start,$sublen))."...";
returnjoin("",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需要截取的字符串";
echocut_str($str,8,0,"gb2312");
?>
相关文章
- Linux下查询最新PHP版本指南(linux查询php版本)
- 的应用利用PHP中MySQL函数实现功能强大的数据库操作(php中mysql函数)
- PHP 如何调用 MySQL 函数(php调用mysql函数)
- PHP如何正确输出MySQL中文字符避免乱码?(php输出mysql乱码)
- PHP在Linux上攀登新高度(php要linux)
- 防止MySQL注入攻击,PHP静态解决方案(mysql防注入 php)
- PHP解决MSSQL数据库乱码问题(php解决mssql乱码)
- PHP与MSSQL的良好结合,发挥强大的功能(php和mssql)
- PHP实现MSSQL数据库分页功能(php分页类 mssql)
- PHP和MSSQL实现完美兼容:简单实用又稳定(php mssql兼容性)
- PHP与MySQL实现三表关联操作(mysql三表关联pHP)
- PHP字符转义相关函数小结(php下的转义字符串)
- php-accelerator网站加速PHP缓冲的方法
- PHP中的MYSQL常用函数(php下操作数据库必备)
- 教你如何使用PHP输出中文JSON字符串
- php的GD库imagettftext函数解决中文乱码问题