在PHPBB3中如何获取最新发表的帖子呢?非常简单,稍有难度的就是如何截取中文字符串,我这里使用了mb_系列函数进行处理。
sql_query($sql);
$latest_posts = '
';
while ($row = $db->sql_fetchrow($result))
{
$latest_posts.=''.getsubject($row['post_subject'],$s).' - '.$row['username'].' '.date('m-d H:i',$row['post_time']).' ';
}
$latest_posts .= '';
$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,去掉编码转换部分,这样在不同的浏览器浏览都没有问题了
发表回复