使用 mb_substr 时如何追加省略号?

ahaosky 2008-06-13 01:32:20
<?php
$sql = "SELECT * FROM `user` ORDER BY `score` DESC LIMIT 0,8";
mysql_query("SET NAMES UTF8");
$result = mysql_query($sql,$conn);
while($row = @mysql_fetch_array($result))
{
echo mb_substr("$row[name]",0,7,'utf-8');
}
?>


已经设置为$row[name]的长度为7,当大于7时,如何在后面追加省略号?

请高手帮忙。(最好直接帮我改好,要不然我不懂的,哈哈)
...全文
443 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
steveluo 2008-07-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ahaosky 的回复:]
引用 7 楼 mrshelly 的回复:
旨在给你思路.你看明白了,自然也就知道怎么做了.


可以我看不明白啊,所以不知道怎么做,嘿嘿
[/Quote]

就是先截取,然后将截取后的结果和未截取的进行比较,如果不相同,就需要追加省略号。

呵呵,我把他用在wordpress里了~
mrshelly 2008-06-13
  • 打赏
  • 举报
回复
echo mb_substr("$row[name]",0,7,'utf-8').((mb_substr("$row[name]",0,7,'utf-8') == $row["name"])?"":"…");
tony-杨 2008-06-13
  • 打赏
  • 举报
回复
function CsubStr($str, $start=0, $length=20, $suffix='...', $charset="utf8"){
if(@function_exists("mb_substr")){
$slice = @mb_substr($str, $start, $length, $charset);
if( mb_strlen($str,$charset) > $start+$length )$slice.=$suffix;
return $slice;
}
}
Jack_Yin 2008-06-13
  • 打赏
  • 举报
回复

<?php
$sql = "SELECT * FROM `user` ORDER BY `score` DESC LIMIT 0,8";
mysql_query("SET NAMES UTF8");
$result = mysql_query($sql,$conn);
while($row = @mysql_fetch_array($result))
{
echo mb_substr("$row[name]",0,7,'utf-8')."…";
}
?>

o(∩_∩)o...哈哈,代码改好,等着结帖给分……
ahaosky 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mrshelly 的回复:]
旨在给你思路.你看明白了,自然也就知道怎么做了.
[/Quote]

可以我看不明白啊,所以不知道怎么做,嘿嘿
luojxun 2008-06-13
  • 打赏
  • 举报
回复
我倒,这样的贴还好意思贴出来。
就不告诉你,呵呵!!!
mrshelly 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ahaosky 的回复:]
这个不行,改了之后什么都没显示出来。
[/Quote]

旨在给你思路.你看明白了,自然也就知道怎么做了.
ten789 2008-06-13
  • 打赏
  • 举报
回复
嘿嘿 俺懂就是不贴代码
ahaosky 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Jack_Yin 的回复:]
PHP code
<?php
$sql = "SELECT * FROM `user` ORDER BY `score` DESC LIMIT 0,8";
mysql_query("SET NAMES UTF8");
$result = mysql_query($sql,$conn);
while($row = @mysql_fetch_array($result))
{
echo mb_substr("$row[name]",0,7,'utf-8')."…";
}
?>

o(∩_∩)o...哈哈,代码改好,等着结帖给分……
[/Quote]

我是说大于7时才追加省略号。不能给你分,嘿嘿。


[Quote=引用 5 楼 mrshelly 的回复:]
echo mb_substr("$row[name]",0,7,'utf-8').((mb_substr("$row[name]",0,7,'utf-8') == $row["name"])?"":"…");
[/Quote]

这个不行,改了之后什么都没显示出来。


[Quote=引用 4 楼 gzty 的回复:]
function CsubStr($str, $start=0, $length=20, $suffix='...', $charset="utf8"){
if(@function_exists("mb_substr")){
$slice = @mb_substr($str, $start, $length, $charset);
if( mb_strlen($str,$charset) > $start+$length )$slice.=$suffix;
return $slice;
}
}
[/Quote]

这个看起来好像可行,但怎么用呢?是不是还要改改?改完之后放哪里?对PHP不怎么懂~呵呵~~

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧