在phpbb3中获取最新发表的帖子

在PHPBB3中如何获取最新发表的帖子呢?非常简单,稍有难度的就是如何截取中文字符串,我这里使用了mb_系列函数进行处理。

sql_query($sql);

$latest_posts = '

';
while ($row = $db->sql_fetchrow($result))
{
$latest_posts.='

';

}
$latest_posts .= '

'.getsubject($row['post_subject'],$s).' - '.$row['username'].' '.date('m-d H:i',$row['post_time']).'

';
$db->sql_freeresult($result);
function getsubject($str,$len)
{
$strlen=mb_strwidth($str);
if ($strlen<=$len) return $str; $tmpstr=mb_substr($str,0,$len); $loop=true; for ($i=0;$loop;$i++) { if (mb_strwidth($tmpstr)>$len)
$tmpstr=mb_substr($str,0,$len-$i-1);
else
$loop=false;
}
return $tmpstr.'...';
}
?>
posts='';
document.write(posts);

其中,getsubject函数的$len参数指的是单字节的宽度,因为在网页中预留的宽度是一定的。l参数代表取最新的记录数,s代表限制的长度(单字节长度)。

使用上述方法修改后,IE里没有问题,但是FIREFOX里反而乱码了。

于是,简单修改调用方法:

同时修改原来的latestpost.php,去掉编码转换部分,这样在不同的浏览器浏览都没有问题了


已发布

分类

来自

评论

《 “在phpbb3中获取最新发表的帖子” 》 有 2 条评论

  1. wlx 的头像
    wlx

    室网站的编码是gb2312,而phpbb的编码是utf8,因此在IE浏览器里会显示乱码。
    因此需要在PHP里进行编码转换。
    可以这样进行转换:

    mb_convert_encoding($row['username'],'gb2312')

  2. wlx 的头像
    wlx

    使用上述方法修改后,IE里没有问题,但是FIREFOX里反而乱码了。

    于是,简单修改调用方法:

    同时修改原来的latestpost.php,去掉编码转换部分,这样在不同的浏览器浏览都没有问题了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注