2

我曾经在学校为我们班运行过一个phpBB论坛,但我们现在已经毕业了,这个论坛不再使用了。我想删除 phpBB 安装,但论坛上写了很多有趣的内容,不时阅读。

我想知道是否有一种简单的方法可以将 phpBB 论坛转换为任何人都可以浏览和阅读的某种静态存档页面,而不是安装完整的 phpBB。

我想我可以使用数据库表自己创建某种转换器,但我想知道是否已经有类似的东西。

4

3 回答 3

3

我只是用来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 ?(通常启动查询参数)。

于 2019-07-25T15:17:13.673 回答
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 页面的链接,但我认为您不会找到任何您需要的东西。

于 2010-10-20T16:18:40.537 回答
0

另一种选择是使用网站复制器(例如http://www.httrack.com/)来生成并保存所有生成的 HTML 文件,这些文件以后可以从服务器提供。

于 2014-09-23T05:57:08.973 回答