PHP截取字符串的几种方法,无乱码哦!

PHP 1400 0 2013-04-30

PHP截取字符串的几种方法,无乱码哦!
<?php
//第一种方法:
//截字符串长度
function substr_cut($str_cut,$length)
{
    if (strlen($str_cut) > $length)
    {
        for($i=0; $i < $length; $i++)
        if (ord($str_cut[$i]) > 128)    $i++;
        $str_cut = substr($str_cut,0,$i);
    }
    return $str_cut;
}

//第二种方法:
function msubstr($str,$start,$len)//截字符串长度
{
$strlen=strlen($str);
for($i=0;$i<$strlen;$i++)
{
if($i>=$start&&$i<($start+$len))
{
if(ord(substr($str,$i,1))>0xa1)
$tmpstr.=substr($str,$i,2);
else
$tmpstr.=substr($str,$i,1);
}

if(ord(substr($str,$i,1))>0xa1)
$i++;

}
return $tmpstr;
}

//第三种方法:
function str_cut($str_cut,$length){

    if(strlen($str_cut) > $length){   //处理标题,太长用……表示
       for($i=0; $i < $length; $i++){
           if (ord($str_cut[$i]) > 128) $i++;
       }
       $str_cut = substr($str_cut,0,$i);
   }
   return $str_cut;
}

//第四种方法:
function cutstr($str,$cutleng)
{

$str = $str; //要截取的字符串
$cutleng = $cutleng; //要截取的长度
$strleng = strlen($str); //字符串长度

if($cutleng>$strleng)return false;//截取的长度要小于等于字符串长度

$notchinanum = 0; //初始不是汉字的字符数
for($i=0;$i<$cutleng;$i++)
{
if(ord(substr($str,$i,1))<=128)
{
$notchinanum++;
}
}
if(($cutleng%2==1)&&($notchinanum%2==0))//如果要截取奇数个字符,所要截取长度范围内的字符必须含奇数个非汉字,否则截取的长度加一
{
$cutleng++;
}
if(($cutleng%2==0)&&($notchinanum%2==1))//如果要截取偶数个字符,所要截取长度范围内的字符必须含偶数个非汉字,否则截取的长度加一
{
$cutleng++;
}
return substr($str,0,$cutleng);
}
?>

上一篇:PHP排序函数,可对数组进行排序

下一篇:PHP简单构建聊天室

讨论数量:0

请先登录再发表讨论。 2024-04-27

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链