php高手请进,关于调取新闻标题的程序或函数

我要才从数据库里面读取新闻标题,显示新闻标题列表规定每行调用60个字节当该新闻标题超过40个字节时就让他显示成一行,大于60的时候就缩短到60个字节,当他小于40的时候就... 我要才从数据库里面读取新闻标题,显示新闻标题列表
规定每行调用60个字节
当该新闻标题超过40个字节时就让他显示成一行,大于60的时候就缩短到60个字节,
当他小于40的时候就让下一个标题来补充这一行(该信息字节=60-上一个的字节-2),当补充还不够时,继续让下一条来补充。依次类推。。
php程序或函数怎么写?
展开
 我来答
阳光上的桥
2008-06-04 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65833
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你的程序没有给出来,我下面演示一下如何写这样的代码,希望对你有一点启发:

方案一、使用CSS来控制60个宽度,自动完成折行的功能,PHP代码只需要负责截断超过60的,和对大于40的添加'<BR>',演示代码:

echo '<table width=300><tr><td>';//300由你测试
while($row=mysql_fetch_array($result)){
$title=$row["title"];
$id=$row["id"];
if (strlen($title)>60) $title=substr($title,0,60);
echo "<a href=detail.php?id=$id>$title</a>";
}
echo '</table>';

方案二、完全用PHP代码实现所有的换行,实例代码如下:

$line_size=60;//初始化先前行剩余60
while($row=mysql_fetch_array($result)){
$title=$row["title"];
$id=$row["id"];
//下面截断超过60的
if (strlen($title)>60) $title=substr($title,0,60);
//下面判断先前行剩余多少,分别先前行已满、加上本行不满、加上本行要满三种情况处理
if ($line_size<20) {echo '<br>';$line_size=60-strlen($title);}
else if ($line_size+strlen($title)<60) {$line_size-=strlen($title)+2;}
else {$title=substr($title,0,60-2-$line_size).'<BR>'.substr($title,60-2-$line_size);$line_size=$line_size+60-strlen($title);}
//输出本行内容
echo "<a href=detail.php?id=$id>$title</a>";
}

核心部分是中间判断先前行剩余多少,如果剩下不多(先前行已经超过40)那就先换行,然后设置剩余为60-当前行长;如果先前行剩余部分加上本行都没有满,那么就输出当前行,并且把剩余减去当前行长度+2;最后剩下的情况是先前行没有满、但是加上当前行会满,这时候要在当前行中间插入<BR>,然后设置剩余为加上60再减去当前行长。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式