我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > PHP专区 > php资源/函数 > 会自动补充的字串截取函数
热门文章排行
热门文章排行 检查email地址格式的代码(01-11)
PHP操作文件问答(01-11)
PHP安装攻略:安装并配置PHP(10-23)
PHP的十个高级技巧 4(10-23)
PHP控制语句(10-12)
精采文章排行
精采文章排行 PHP连接MYSQL的两种方法(11-15)
PHP和MySQL开发的8个技巧(10-23)
PHP安装攻略:安装并配置PHP(10-23)
php+mysql扎实个人基本功(10-23)
PHP编程常用技巧四则(10-23)
技术专题推荐
网管论坛交流
 

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

作者:佚名   来源:本站教程   点击:   日期:2007-01-11

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


当截取句子时,可能会断在一个单词的中间,如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




文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·将OICQ数据转成MYSQL数据 ·用PHP实现ODBC数据分页显示一例
·php生成WAP页面 ·PHP与Javascript的两种交互方式
·PHP+Javascript模拟Matrix画面 ·WHOIS类的修改版

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。