2 Stimmen

Wie konvertiert man ein phpBB-Board in eine statische Archivseite?

Ich habe früher ein phpBB-Forum für unsere Klasse in der Schule betrieben, aber wir haben jetzt unseren Abschluss gemacht und das Forum wird nicht mehr benutzt. Ich möchte die phpBB-Installation entfernen, aber in dem Forum ist viel geschrieben worden, was ab und zu Spaß macht zu lesen.

Ich frage mich, ob es eine einfache Möglichkeit gibt, das phpBB-Forum in eine Art statische Archivseite zu konvertieren, die jeder durchstöbern und lesen kann, anstatt die komplette phpBB-Installation zu haben.

Ich denke, ich könnte selbst eine Art Konverter mit Hilfe der Datenbanktabellen erstellen, aber ich frage mich, ob es so etwas schon gibt.

4voto

Matthijs Kooijman Punkte 1978

Ich habe gerade wget um ein PhpBB2-Forum vollständig zu archivieren. Bei PhpBB3 oder neueren Versionen könnte es etwas anders aussehen, aber der grundlegende Ansatz ist wahrscheinlich nützlich.

Ich habe zunächst eine Datei mit Sitzungscookies gefüllt (um um phpbb daran zu hindern, sid= in Links zu setzen), dann habe ich die eigentliche Spiegelung durchgeführt. Dazu habe ich wget 1.20, da 1.18 die --adjust-extension für Nicht-HTML-Dateien (z.B. 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

Damit wird wget angewiesen, die gesamte Website einschließlich der Requisiten (CSS und Bilder) rekursiv zu spiegeln. Bestimmte URLs werden abgelehnt (übersprungen), vor allem weil sie auf einer statischen Website nicht mehr nützlich sind (z. B. Suche) oder nur leicht unterschiedliche oder sogar identische Ansichten desselben Inhalts darstellen (z. B. viewtopic.php?p=... gibt nur das Thema zurück, das den angegebenen Beitrag enthält, so dass dieses Thema nicht für jeden einzelnen Beitrag gespiegelt werden muss. Die --adjust-extension Option bewirkt, dass wget dynamisch generierten HTML-Seiten ein .html hinzufügt, und --restrict-file-names=windows macht es (unter anderem) zum Ersatz für die ? mit einer @ so dass Sie das Ergebnis auf einem Webserver ablegen können, ohne dass der Webserver die URLs an der ? (mit dem normalerweise die Abfrageparameter beginnen).

1voto

Sephrial Punkte 1147

Sie könnten ein schnelles PHP-Skript schreiben, um die Datenbank abzufragen und eine flache HTML-Datei zu erzeugen.

...
<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>
...

Sie könnten auch etwas ausgefallener vorgehen und für jedes Thema eine HTML-Datei erzeugen und eine index.html-Seite erstellen, die Links zu allen erzeugten HTML-Seiten enthält, aber ich glaube nicht, dass Sie etwas finden, das Ihren Anforderungen entspricht.

0voto

Collector Punkte 1857

Eine andere Möglichkeit wäre die Verwendung eines Website-Kopierers wie z. B. http://www.httrack.com/ um alle generierten HTML-Dateien zu erzeugen und zu speichern, die später vom Server ausgeliefert werden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X