欢迎光临
我们一直在努力

会自动补充的字串截取函数-PHP教程,PHP函数

建站超值云服务器,限时71元/月

会自动补充的字串截取函数

当截取句子时,可能会断在一个单词的中间,如beincity一词被断在了当中,这样有时会不妥,下面这个函数就是用来解决这个问题的,当bdelete=true时,就删除那个被截断的单词(因为我觉得把它删掉比把它补充完整要来得方便)。当然,这个函数支持对中文的操作,当双字节字符被截断时,会自动补充完整。

<?

function wordscut($string, $length, $bdelete=false)

{

if(strlen($string) > $length) {

for($i = 0; $i < $length – 3; $i++) {

if(ord($string[$i]) > 127) {

$wordscut .= $string[$i].$string[$i + 1];

$i++;

} else {

$wordscut .= $string[$i];

}

}

///add

if( $i == $length-3 ) {

if( $bdelete ) {

if(ereg("[0-9a-za-z_\.\-]", $string[$i])) {

for($j=$i-1; $j>=0; $j–)

if(!ereg("[0-9a-za-z_\.\-]", $string[$j])) break;

$wordscut = substr($wordscut, 0, strlen($wordscut)-($i-$j)+1);

}

}

}

///

return $wordscut. …;

}

return $string;

}

echo wordscut("hello,小坚.beincity!", 18, true);

echo "<br>";

echo wordscut("123 567 90abcde", 6+3, true);

?>

<?//another

function substrgb($in, $num, $delete=false)

file://usage: $short = substrgb($yourtext, $num, $delete?)

{

$pos=0;

$out="";

while($c = substr($in, $pos, 1)) {

if(ord($c) > 127) {

$out .= $c;

$pos++;

$c = substr($in, $pos, 1);

$out .= $c;

} else {

$out .= $c;

}

$pos++;

if($pos >= $num) break;

}

if($pos == $num) {

if( $delete ) {

if(ereg("[0-9a-za-z_\.\-]", substr($in, $pos, 1))) {

for($j = $pos-1; $j >= 0; $j–)

if(!ereg("[0-9a-za-z_\.\-]", substr($out, $j, 1)))

break;

$out = substr($out, 0, strlen($out)-($pos-$j)+1);

}

}

}

return $out;

}

?>

责任编辑: microrain

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 会自动补充的字串截取函数-PHP教程,PHP函数
分享到: 更多 (0)

相关推荐

  • 暂无文章