我曾经在学校为我们班级运行一个phpBB论坛,但我们现在已经毕业了,论坛已经不再使用了。我想删除phpBB安装,但在论坛中写了很多,有时候阅读很有趣。
我想知道是否有一种简单的方法可以将phpBB论坛转换为某种静态存档页面,任何人都可以浏览和阅读,而不是安装完整的phpBB。
我想我可以使用数据库表自己创建某种转换器,但我想知道是否已有类似的东西。
答案 0 :(得分:1)
您可以编写一个快速的PHP脚本来查询数据库并生成一个平面HTML文件。
...
<body>
<table>
<tr>
<th>Topic</th>
<th>Author</th>
<th>Content</th>
</tr>
// Query php Database Table
foreach (Row in tblComment) {
echo "
<tr>
<th>$topic</th>
<th>$author</th>
<th>$content</th>
</tr>
"
}
</table>
</body>
...
或者你可以为每个主题创建一个有点发烧友并生成HTML文件,并构建一个index.html页面,其中包含指向所有创建的HTML页面的链接,但我认为你不会发现任何可以做到的事情你需要。
答案 1 :(得分:0)
另一种选择是使用http://www.httrack.com/等网站复印机生成并保存所有生成的HTML文件,以后可以从服务器提供这些文件。
答案 2 :(得分:0)
我刚刚使用wget
来完全存档PhpBB2论坛。对于PhpBB3或更高版本,情况可能有所不同,但是基本方法可能有用。
我首先用会话Cookie填充了一个文件( 防止phpbb将sid =放在链接中),然后进行实际镜像。这用 wget 1.20,因为1.18弄乱了非html文件的--adjust-extension(例如 gifs)。
wget https://example.com/forum/ --save-cookies cookies \
--keep-session-cookies
wget https://example.com/forum/ --load-cookies cookies \
--page-requisites --convert-links --mirror --no-parent --reject-regex \
'([&?]highlight=|[&?]order=|posting.php[?]|privmsg.php[?]|search.php[?]|[&?]mark=|[&?]view=|viewtopic.php[?]p=)' \
--rejected-log=rejected.log -o wget.log --server-response \
--adjust-extension --restrict-file-names=windows
这告诉wget递归地镜像整个站点,包括必备条件(CSS和图像)。它拒绝(跳过)某些URL,主要是因为它们不再在静态站点中有用(例如,搜索),或者只是对相同内容的稍微不同甚至相同的视图(例如,viewtopic.php?p=...
仅返回包含给定URL的主题)。帖子,因此无需为每个帖子都反映该主题。--adjust-extension
选项使wget将.html添加到动态生成的HTML页面中,而--restrict-file-names=windows
使其替代{{1 }}和?
,因此您实际上可以将结果放到Web服务器上,而无需该Web服务器在@
处切断URL(通常会启动查询参数)。