
正文
php按字节数截取数据 php按字节数截取数据的函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
php截取一段字符 计算它的长度,多余的用“...”代替
function cut_str($sourcestr,$cutlength){
$returnstr='';
$i=0;
$n=0;
$str_length=strlen($sourcestr);//字符串的字节数
while (($n$cutlength) and ($i=$str_length))
{
$temp_str=substr($sourcestr,$i,1);
$ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
if ($ascnum=224) //如果ASCII位高与224php按字节数截取数据,
{
$returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
$i=$i+3; //实际Byte计为3
$n++; //字串长度计1
}
elseif ($ascnum=192) //如果ASCII位高与192,
{
$returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
$i=$i+2; //实际Byte计为2
$n++; //字串长度计1
}
elseif ($ascnum=65 $ascnum=90) //如果是大写字母,
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1; //实际的Byte数仍计1个
$n++; //但考虑整体美观,大写字母计成一个高位字符
}
else //其php按字节数截取数据他情况下,包括小写字母和半角标点符号,
{
$returnstr=$returnstr.substr($sourcestr,$i,1);
$i=$i+1; //实际的Byte数计1个
$n=$n+0.5; //小写字母和半角标点等与半个高位字符宽...
}
}
if ($str_length$cutlength){
$returnstr = $returnstr."...";//超过长度时在尾处加上省略号
}
return $returnstr;
}
以上是函数,参数是相应字符串和该字符串长度,字符串的长度可以通过strlen函数获取php按字节数截取数据!希望对你有帮助!
相关问答
Q1: PHP指字符数量截断,在后面加上省略号。
substr可以截断字符串,但是不能显示省略号,用 Smarty 的的 truncate 方法可以把页面的字符串截断并显示省略号。
Q2: php从字符串中截取数字
可以用正则表达式,例如:
?php
$str="我最爱看的《西游记》101页";
if (preg_match('/《(.*?)》/',$str,$reg)) echo '书名:'.$reg[1];
if (preg_match('/》(\d+)/',$str,$reg)) echo '页码:'.$reg[1];
?
关于php按字节数截取数据和php按字节数截取数据的函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








