如何将phpBB board转换为静态存档页面?

时间:2010-10-20 16:05:32

标签: html static phpbb

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

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

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

3 个答案:

答案 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(通常会启动查询参数)。