ASCII-Dateien automatisch fürs Web aufbereiten

Scriptsprachen helfen, lästige Aufgaben zu automatisieren. Dieser Artikel stellt ein kleines PHP-Script vor, mit dem sich einfacher ASCII-Text in gut lesbaren HTML-Markup-Text umwandeln lässt.

ASCII-Text für Webseiten aufzubereiten ist an sich keine große Sache. Nur wenn es sich um extrem viel Text handelt, wird die Arbeit schnell monoton. Ein kleines PHP-Script kann da helfen, sich der eintönigen Arbeit zu entziehen und die Aufgabe schneller zu erledigen.

Am Anfang steht ein Beispiel für eine unbearbeitete Textdatei, die umgewandelt werden soll:

Grünes Licht für den Mars!
John R. Doe

Die Idee von den kleinen grünen Männchen vom Mars,
lange Zeit die Hauptnahrung für Science-Fiction,
könnte sich schon bald mehr als Fakt denn als Fiktion erweisen.


Die von der jüngsten Mars-Expedition mitgebrachten
Proben deuten auf eine hohe Konzentration an Chlorophyll
in der Atmosphäre hin. Chlorophyll ist, wie wir wissen,
das, was Pflanzen grün aussehen lässt. Es ist daher ziemlich
wahrscheinlich, dass die Außenhaut von Organismen auf dem Mars
durch den dauerhaften Kontakt mit dem grünen Stoff einen
Grünstich entwickelt hat.
Ein Interview mit Dr. Rushel Bunter, Leiter des ASDA
Mars Colonization Project usw., usw.

Was heißt das nun für Sie?
Nun, es heißt, dass usw., usw.

Bei dem Beispieltext handelt es sich um einen Standardtext: Es gibt eine Überschrift (oder Schlagzeile), eine Zeile mit dem Namen des Autors und viele Absätze mit Text. Alles, was getan werden muss, um dieses Dokument in HTML umzuwandeln, ist, HTML-Zeilen- und Absatzwechsel einzufügen, um das ursprüngliche Layout auf einer Webseite zu erhalten. Spezielle Satzzeichen müssen in ihre HTML-Entsprechungen umgewandelt und Hyperlinks aktiviert werden, damit man sie anklicken kann.

Hier ist der PHP-Code (Listing A), mit dem dies umgesetzt werden kann:

Listing A

Wie funktioniert das?

  1. Der erste Schritt ist das Einlesen der unbearbeiteten ASCII-Datei in einen PHP-Array. Das geht ganz leicht über die Funktion file(), die jede Zeile der Datei in ein Element eines numerisch indizierten Arrays umwandelt.
  2. Als nächstes werden die Überschrift und die Autorenzeile (die beiden ersten Zeilen der Datei) mittels der Funktion array_shift() aus dem Array in separate Variablen extrahiert. Anschließend werden die verbleibenden Elemente des Arrays zu einem einzigen String verkettet. Dieser String enthält nun den gesamten Textkörper des Artikels.
  3. Sonderzeichen wie ', < und > innerhalb des Textkörpers werden über die Funktion htmlspecialchars() in ihre HTML-Entsprechungen umgewandelt. Damit die ursprüngliche Formatierung des Artikels erhalten bleibt, werden Zeilen- und Absatzschaltungen über die Funktion nl2br() in HTML-Elemente umgewandelt. Mehrere aufeinander folgende Leerzeichen im Textkörper werden durch das einfache Ersetzen von Strings zu einzelnen Leerzeichen komprimiert.
  4. URLs innerhalb des Textkörpers werden über reguläre Ausdrücke erkannt und von Elementen umschlossen. Das macht die URLs zu anklickbaren Hyperlinks, wenn die Seite in einem Webbrowser angezeigt wird.
  5. Die letztendliche HTML-Seite wird nun über standardmäßige HTML-Regeln konstruiert. Die Artikelüberschrift, der Autor und der Textkörper werden mit CSS Style Rules formatiert. Da das Script hierzu nicht in der Lage ist, ist dies der Punkt, an dem man das letztendliche Erscheinungsbild der Seite anpasst - zum Beispiel durch das Hinzufügen von grafischen Elementen, Farben oder sonstiger Zaubereien zur Seitenvorlage.
  6. Steht die HTML-Seite, kann sie an den Browser gesendet werden oder über file_put_contents() in einer statischen Datei gespeichert werden. Zu beachten gilt, dass der ursprüngliche Dateiname beim Speichern aufgelöst und eine neue Datei (dateiname.html) für die neu erstellte Webseite erzeugt wird. Nun kann man diese Webseite auf einem Webserver veröffentlichen, auf einer CD-ROM speichern oder weiter bearbeiten.

Hinweis: Verwendet man dieses Script zum Erstellen und Speichern von HTML-Dateien auf einem Laufwerk, ist darauf zu achten, dass das Script Schreibrechte für das Verzeichnis besitzt, in dem die Dateien gespeichert werden sollen.

Wie man sieht, lassen sich ASCII-Textdateien in einem Standardformat mit PHP recht schnell in brauchbare Webseiten konvertieren. Hat man eine bestehende Website, in der die neuen Webseiten eingebaut werden sollen, ist es auch relativ einfach, die vom Seitengenerator verwendete Vorlage so anzupassen, dass sie zum Aussehen der restlichen Website passen.

Fanden Sie diesen Artikel nützlich?
Noch keine Bewertung vorhanden.

Aktuelle Job-Angebote

ZDNet.de Live

Googl ...

Google arbeitet angeblich an Home Entertainment System mit Cloudanbindung t.co/...

10.02.12, 21:10 von zdnet_de
Why ...

Why are young Japanese men losing interest in sex? t.co/...

10.02.12, 20:55 von ZDNet
What ...

What AMD's new roadmap means for users t.co/...

10.02.12, 20:40 von ZDNet
Manch ...

Manchester City is expanding its online reach to Japan t.co/...

10.02.12, 20:35 von ZDNet
Fours ...

Foursquare evolving into one-stop shop with NFC support t.co/...

10.02.12, 20:35 von ZDNet
Websi ...

Website der Gelben Seiten baut Bewertungsfunktionen aus t.co/...

10.02.12, 20:30 von zdnet_de
Motor ...

Motorola: Android-Updates verzögern sich wegen der Hardware-Vielfalt t.co/...

10.02.12, 20:00 von zdnet_de
Aktie ...

Aktienkurse dort wo man sie am liebsten sieht: auf dem Mülleimer! t.co/...

10.02.12, 19:50 von coke4all
Faceb ...

Facebook details Zuckerberg's $500,000 salary, 45% bonus t.co/...

10.02.12, 19:45 von ZDNet
New ...

New Microsoft Office University product comes with tougher verification rules t.co/...

10.02.12, 19:35 von ZDNet
#Prad ...

#Prada Phone by #LG 3.0 ausgepackt und ausprobiert - #smartphone #android t.co/...

10.02.12, 19:30 von cnet_de
Schon ...

Schon im Test: Prada Phone by LG 3.0 mit Android und superhellem Display t.co/...

10.02.12, 19:30 von cnet_de
Beta ...

Beta von Chrome 18 erweitert Hardwarebeschleunigung t.co/...

10.02.12, 19:30 von zdnet_de
Sage ...

Sage helps chocolate business manage seasonality t.co/...

10.02.12, 19:20 von ZDNet
Colum ...

Columbia University excludes Google Docs t.co/...

10.02.12, 19:20 von ZDNet
Benq ...

Benq bringt XGA-Projektor mit 4000 ANSI-Lumen t.co/...

10.02.12, 19:00 von zdnet_de
Germa ...

Germany postpones ACTA signing in wake of protests t.co/...

10.02.12, 18:45 von ZDNet
Iran ...

Iran cuts off access to popular Web sites t.co/...

10.02.12, 18:40 von ZDNet
Makin ...

Making lame excuses for Microsoft's decision to drop the Start button in Windows 8 t.co/...

10.02.12, 18:40 von ZDNet