近日,想通过首页调用下discuz的最新帖子,虽然discuz提供了比较好用的js外部调用,但是效果实在欠佳!主要是咱们做网站考虑的是SEO,弄个JS对搜索引擎实在不友好,因此多番寻找之下,终于找到了合适的代码。
但是测试后发现,乱码竟然出现了….
源代码已经做了UTF8字符转换,数据库和表都没问题,这是为什么呢?
后结合某君的一篇IIS下数据库乱码的文章,对输出字符串进行了强化转换,修改源代码后,终于成功!
个人微信:93547942 欢迎添加交流!
<?php
//截取utf8字符串
function utf8Substring($str, $from, $len){
return preg_replace(‘#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$from.’}’.
‘((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,’.$len.’}).*#s’,’$1′,$str);
}
//建立数据库链接
$conn = @mysql_connect(“localhost”, “数据库名”, “数据库密码”) or die(“数据库链接错误”);
//指定要链接的数据库
mysql_select_db(“数据库名”, $conn);
//使用UTF-8中文编码;
mysql_query(“set names ‘UTF-8′”);
mysql_query(“SET CHARACTER_SET_CLIENT=utf8”);
mysql_query(“SET CHARACTER_SET_RESULTS=utf8”); //这两句是新加的
//指定版块的所有文章中取10条最新帖子
$SQL=”SELECT tid,subject FROM pre_forum_thread where fid in (2,39,40,42,44) ORDER BY tid DESC LIMIT 0,10″;
$query=mysql_query($SQL);
//循环显示结果
while($row=mysql_fetch_array($query)){
echo “<li><a title=”.$row[subject].” href=http://o2o.yantailao.com/thread-“.$row[tid].”-1-1.html target=_blank>”.
utf8Substring($row[subject], 0, 30).”</a></li>”;
}
//关闭链接
mysql_close($conn);
?>
0 (0%) 好评 | 0 (0%) 中评 | 0 (0%) 差评 |