我曾经在学校为我们班运行过一个phpBB论坛,但我们现在已经毕业了,这个论坛不再使用了。我想删除 phpBB 安装,但论坛上写了很多有趣的内容,不时阅读。
我想知道是否有一种简单的方法可以将 phpBB 论坛转换为任何人都可以浏览和阅读的某种静态存档页面,而不是安装完整的 phpBB。
我想我可以使用数据库表自己创建某种转换器,但我想知道是否已经有类似的东西。
我只是用来wget
完全存档一个 PhpBB2 论坛。对于 PhpBB3 或更新版本,情况可能会有所不同,但基本方法可能很有用。
我首先用会话 cookie 填充了一个文件(以防止 phpbb 将 sid= 放入链接中),然后做了实际的镜像。这使用了 wget 1.20,因为 1.18 弄乱了非 html 文件(例如 gifs)的 --adjust-extension。
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=...
,只返回包含给定帖子的主题,所以不需要为每个单独的帖子镜像该主题。该--adjust-extension
选项使 wget 将 .html 添加到动态生成的 HTML 页面,并--restrict-file-names=windows
使其替换(除其他外)?
a @
,因此您实际上可以将结果放在网络服务器上,而无需该网络服务器切断的 urls ?
(通常启动查询参数)。
您可以编写一个快速的 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 页面的链接,但我认为您不会找到任何您需要的东西。
另一种选择是使用网站复制器(例如http://www.httrack.com/)来生成并保存所有生成的 HTML 文件,这些文件以后可以从服务器提供。