我给个貌似更好的代码吧。修改bbscon.php:
<body>之前加上:
<link rel="stylesheet" type="text/css" href="/ansi.css"/>
这个是所有ansi控制符对应的<font>css,如果你直接用html_init("gb2312"),一些别的
页面风格会受到影响。然后,那个js附近改成这样:
<tr><td class="t5">
<font class="content">
<?php
/*
<script language="Javascript" src="jscon.php?ftype=<?php echo $ftype; ?>&bid=<?
php echo $brdarr["BID"]; ?>&id=<?php echo $articles[1]["ID"]; ?>">
</script> */
$filename=bbs_get_board_filename($board, $articles[1]["FILENAME"]);
if (!file_exists($filename))
html_error_quit("对不起,找不到您要打开的文章,请向管理员报告。");
echo bbs_printansifile($filename);
?>
</font>
</td></tr>
这样就能显示彩色了。bbstcon.php同理不过我没有试验。bbs_printansifile()函数的
问题有:第一,不支持显示附件,所以有附件的站点不可能用这个方案。比较猥琐的临时
方案就是判断这个fileheader->attachment是不是true,如果是就改用原来的js。
第二,bbs_printansifile()对一些特殊表格符号处理有问题。你可以在web下面到smth的
netresources版看进版画面(或者发表文章也可以)。原因是有一些特殊的表格记号的
后半个字节恰好是[或者],这样bbs_printansifile()误以为和ubb有关系所以出了bug。
嗯,没了。
【 在 nfeng@smth.org-SPAM.no (聂风) 的大作中提到: 】
: 一直看到smth系统在web下显示文章时都是黑白的,以为还没有实现相关的功能呢,
: 结果今天碰巧在web看到了一个彩色的进版画面,才发现已经有了相关的函数了,
: 只要先:
: html_init("gb2312");
: 再:
: echo bbs_printansifile($filename);
: 就可以了。不过不知道为什么除了进版画面之外的地方都没有用这个函数?而是
: 用了一个jscon.php来显示帖子,好像是说用javascript方式显示帖子,没看明白
: 为什么要这么做。
: 本来在调用 jscon.php 之前先 html_init("gb2312"); 一下的话也可以使回复的
: ...................
--