bookmarks.php - Ein php-Skript, daß Bookmark-Dateien nach dem Netscape-Standard ausliest und weiterverarbeitet
Das sehr alte (!) Skript wurde durch ein neueres von 2017 ersetzt.
Im Rahmen diverser Anpassungen ist es evtl. in einem "unsauberen" Zustand.
Ich hatte mich darum nicht mehr gekümmert, weil mir das Auslesen der neueren sqlite-Datenbank wichtiger war.
Wer Interesse an dem alten Skript haben sollte: bitte sehr :)
Wie es anfing:
Als Betreuer diverser Webpräsenzen überwache ich nicht nur die Gültigkeit von Links oder das Ranking der Seiten in
Suchmaschinen, sondern kümmere mich auch um individuelle Schmankerl wie dynamische Webseiten oder Kleinigkeiten wie
z.B. die Integration einer Lesezeichen-Seite.
Anfangs benutzte ich ein Tool namens URLBase, das u.a. in der Lage war, die Favoriten-Linklisten aus dem Internet Explorer
auszulesen und diese in eine html-Datei zu exportieren. Unter Angabe eines StyleSheet-Bezuges konnte das Design sogar an die in der Webpräsenz
bestehenden Webseiten angepasst werden.
Als das Tool bei der äußerst umfangreichen Favoriten-Sammlung einer früheren Freundin zum Einsatz kam,
avancierte die dadurch ausgegebene Webseite rasch zur meist besuchten Seite ihres Webauftrittes.
Das veranlasste mich, über eine Optimierung einer solchen Favoriten-Seite nachzudenken, um die sehr große Seite per
html-Entschlackung zu verkleinern und um eine bessere Lesbarkeit sowohl für Besucher als auch Suchmaschinen zu erreichen.
Also ging's los mit der bewährten Programmierung einer Access97-Frontend-Anwendung, die rekursiv durch die Ordner und
Favoriten-Dateien des Windows-Favoriten-Verzeichnisses lief und alle gespeicherten Link-Informationen sammelte.
Da html und css durch die Programmierung frei bestimmbar waren, konnte sich die Seite an das Design der bestehenden
Webseiten einwandfrei anpassen.
Die Art der verwendeten Zeilenumbrüche, das Maß der Quelltext-Einrückung bis hin zum Ausgeben von Debug-Protokollmeldungen
waren frei bestimmbar.
nach oben
Wo das Problem liegt:
Nach langem Ringen hatte ich mich im Jahre 2004 endlich durchgerungen, mich für eine Alternative zum Microsoft-Webbrowser
Internet Explorer auszusprechen:
Firefox .
Ich selbst hatte die fürchterlich umfangreichen Netscape- und Mozilla-Programmpakete immer gescheut, obwohl schon länger
einiges z.B. für diese Browser sprach, weil sie u.a. nicht so anfällig für Angriffe durch Viren sind, weil sie nicht so
unüberschaubar viele Sicherheitslücken haben, weil solche dann schnell öffentlich besprochen, behoben und zugänglich
gemacht werden ... mit einem Wort: weil sie nicht von Microsoft sind.
Für mich als zufriedener Benutzer eines betagten IE4 wäre das eigentlich gar nicht nötig gewesen.
Der Browser kommt mit css recht anständig zurecht und ist für alle Viren-, Webseiten-Exploits- und andere Angriffe
der letzten Jahre immun (er ist schlicht und ergreifend zu "dumm", bzw. einfach zu alt für diesen gefährlichen Unsinn).
Aber was sollte ich mit meinen Kunden machen, die schon allein durch ihre neueren Windows-Installationen mit IE5 und
schlimmer bestraft wurden ?
Also habe ich mir den Firefox-Browser angeschaut und für gut befunden.
"Folgsamen" Kunden wird je nach Bedarf z.B. ein simples Windows 98 OHNE Internet Explorer installiert (mit Hilfe der wunderbaren
Tools 98lite o.a. xplite von www.litepc.com
und danach die OpenSource-Programme Firefox als Webbrowser und Thunderbird als eMail-Client.
Unerwünschte wie auch virulente eMails sortiert Thunderbird bei mir mit beinahe 100%iger Sicherheit aus.
Virenscanner habe ich zu Spaßtools degradiert, die ich lediglich benutze, wenn es mir langweilig ist und ich wissen
möchte, welche aktuellen eMail-Viren gerade wieder im Umlauf sind, oder wenn es wieder mal irgendeine arme Sau mit Windows
XP eiskalt erwischt (das sind dann typischerweise keine Kunden von mir und werden's auch nicht werden).
Das seinerzeit für den Internet Explorer geschriebene Tool zur Webseiten-Aufbereitung der Favoriten-Linkliste hat aber mit
der Umstellung auf den Firefox-Browser ausgedient. Der legt seine als bookmarks bezeichneten Linklisten gemäß
Netscape-Standard als "NETSCAPE-Bookmark-file" in einer sog. xml-Datei ab, die wie eine Webseite betrachtet und bedient
werden kann. Diese Art der Lesezeichen-Verwaltung ist typisch für die Familie der Netscape-Browser, zu der auch Mozilla und
Firefox gehören. Das Lesezeichen-Dokument kann man auch einfach auf seinen Webspace hochladen und verlinken, fertig ist
eine online-Linkliste.
Was mir aber daran nicht gefallen hat, war die Tatsache, daß zum einen die binären Daten sog. Favoriten-Icons in dieser
Datei abgelegt werden (s.a. die
Informationen zum Thema favicon.ico
sowie ein Haufen weiterer Informationen, wann z.B. Links angelegt, verändert oder zum letzten Male
besucht wurden. Obendrein ist das Dokument nicht im Sinne von xhtml "wohlgeformt", soll heißen, geöffnete <dt>- und
<p>-Tags werden nicht wieder geschlossen, was dem Browser beim Interpretieren und Darstellen dieser Datei aber
ziemlich wurscht ist. Die Datei selbst wird abhängig von der Windows-Version in einem Verzeichnis abgelegt, in dem
bezogen auf den Benutzer Anwendungsdaten gespeichert werden. Wenn Sie in diesem Verzeichnis nach Beenden einer
Firefox-Sitzung eine bookmarks.htm mit aktuellem Datum und Uhrzeit sowie eine ebenso aktuelle bookmarks.bak-Sicherheitskopie
finden, dann sind Sie richtig.
Nachdem ich als Programmierer selbst bestimmen möchte, wie meine online-Lesezeichenliste aufgebaut ist, war der Anreiz
geboren, die Lesezeichendatei bookmarks.html durch ein entsprechendes Tool auszuwerten und eine wunschgemäße Ausgabe zu
erzeugen.
nach oben
Wie es weiterging:
Da Mozilla und Firefox OpenSource-Programme sind, war ich mir sicher, in der Szene ein Tool oder wenigstens ein Script zu
finden, das die Auswertung der bookmarks.html-Lesezeichendatei bewerkstelligt.
Nach geduldiger und wiederholter Suche habe ich immerhin ein in der Webserver-Programmiersprache php geschriebenes Script
von Thomas Kappler entdeckt, das er gemäß der
GPL-Richtlinien
(
was Sie dürfen
/
was Sie nicht dürfen
)
veröffentlicht hatte. So möchte ich es denn auch halten und habe, damit es andere beim Suchen im Internet leichter haben,
diese Seite geschrieben.
Das Script hat meinen eigenen Wünschen in einigen Punkten nicht entsprochen, und so habe ich angefangen, diverse
Anpassungen und Erweiterungen vorzunehmen, bis ich damit zufrieden war.
nach oben
Was es alles kann:
Das php-Script ist in zwei Dateien unterteilt:
-
bookmarks.php: Hier können Einstellungen vorgenommen werden und es läuft das "Hauptprogramm" mit 8 Zeilen Code ab.
-
bookmarks_functions.php: Das steht alles drin, was die Programmiergeschichten betrifft und sollte nur von jemandem
verändert werden, der was davon versteht.
Der Quelltext (sourcecode) ist in Englisch kommentiert; wer programmieren kann, sollte damit keine Probleme haben.
Das Script bookmarks.php kann auf zweierlei Art benutzt werden:
-
online: Auf dem Webspace liegend kann es direkt per URL im Browser-Adressfeld aufgerufen werden.
Es folgt den Einstellungen diverser Konstanten und weiß daher, wo es die bookmarks.html auf dem Webspace findet.
Die Ausgabe erfolgt dynamisch direkt im Browser.
-
offline: Das Script liegt irgendwo auf einer Festplatte.
Als Voraussetzung muß php vorhanden sein, ein Webserver wird nicht benötigt.
Der Aufruf erfolgt per Kommandozeile (absetzbar in DOS-Shell-Fenstern, im Windows-Startmenü-Ausführen-Dialog oder in
selbstgeschriebenen Anwendungen, die einen, wie z.B. bei mir, daran erinnern, Teile des eigenen Webspaces regelmäßig zu
aktualisieren.
Die Befehlssequenz sieht auf einem PC-System ungefähr so aus:
c:\php\php.exe -f c:\website\php\bookmarks.php sourcefile=c:\prog\mozilla\bookmarks.html targetfile=c:\website\lesezeichen.htm removewhitespace=true
Die Bestandteile sind per Leerzeichen getrennt, Pfadangaben müssen selbstverständlich angepasst werden.
Das php-Script erzeugt eine Datei, die dann auf den Webspace hochgeladen werden muß.
Speziell Suchmaschinen kommen mit dieser Variante gut zurecht und können so über die Auswertung einer regelmäßig
aktualisierten Linkliste die Popularität einer Webseite steigern helfen.
Die ausgegebenen Daten sind nicht einmal halb so groß, wie der Platzbedarf der ursprünglichen Netscape-bookmark-Datei.
In beiden Modi kann bestimmt werden, ob sog.
Whitespace
ausgegeben werden soll, was nochmal ca. 8% Platz spart.
In der Hauptdatei bookmarks.php können eine Reihe von Einstellungen vorgenommen werden:
-
Im online-Modus können Name und Pfad der bookmarks.html bestimmt werden, sowie, ob unsichtbare Zeichen unterdrückt
werden sollen,
-
während für den offline-Betrieb die Namen der Parameter-Variablen für Quelldatei, Zieldatei und Unterdrückung
unsichtbarer Zeichen frei wählbar sind.
Darüber hinaus erlauben weitere Konstanten die Einstellungen technischer Details:
-
Die zu verwendenden Zeichen für Zeilenumbruch und Tabulator-ähnliche Einrückung
(passend für das verwendete Betriebssystem)
- Der relative Pfad zur obersten Ebene des Webspaces, um Referenzen zu anderen Dateien herstellen zu können.
- Der Bezug auf eine externe css-StyleSheet-Datei und eine Link-nach-oben-Grafik.
-
Die Anzahl der in der oberen Navigation dargestellten Ebenen (Menü-Tiefe).
Die Navigation kann mit negativen Werten ausgeblendet bzw. in voller oder begrenzter Tiefe angezeigt werden.
-
Für die Hauptkategorien der obersten Ebene im Navigationsbereich sowie alle im unteren Bereich kann bestimmt werden,
ob diese in fetter Schrift erscheinen.
- Externe Bookmark-Links werden wahlweise im selben oder in einem neuen Browser-Fenster geöffnet.
- Die Überschrift kann per Option schwebend dargestellt werden, um vertikalen Platz zu sparen.
-
Firefox z.B. erlaubt, für gespeicherte Lesezeichen eigene Kommentare zu hinterlegen.
Diese Kommentare erscheinen auf Wunsch in einer Sprechblase (per html-title-tag), wenn man mit der Maus über einen
entsprechenden Link fährt.
Ein frei einstellbares Zeichen weist dezent auf einen vorhandenen Kommentar hin.
nach oben
Ein Beispiel:
für die Ausgabe einer online-Linkliste, wie sie meinen Vorstellungen entspricht, ist die Seite
lesezeichen.htm.
nach oben
Download:
nach oben