Teil von SELFHTML aktuell Teil von Artikel Teil von CGI/Perl

Perl:
Wie stelle ich HTML-Code in HTML dar?

nach unten Stefan Münz
nach unten Hinweise zum Thema
nach unten Beispiel mit Erläuterungen
nach unten Weiterführende Links

Stefan Münz

E-Mail: E-Mail stefan.muenz@selfhtml.org
Homepage-URL: deutschsprachige Seite http://aktuell.de.selfhtml.org/

Bei Fragen zu diesem Beitrag bitte den Autor des Beitrags kontaktieren!

nach obennach unten

Hinweise zum Thema

HTML wird häufig auch für Sprachdokumentationen verwendet, auch und gerade für Internet-Technologien, die selber wiederum HTML oder XML-basierte Sprachen beschreiben. Dabei tritt das Problem auf, dass für zusammenhängende Beispiele oftmals massenweise HTML-Code oder XML-Code dargestellt werden soll. Nun müssen aber in HTML alle HTML-eigenen Zeichen durch entsprechende Entities umschrieben werden:
das Zeichen < durch die Zeichenfolge &lt;,
das Zeichen > durch die Zeichenfolge &gt;,
das Zeichen & durch die Zeichenfolge &amp;,
das Zeichen " durch die Zeichenfolge &quot;.
Das ist eine Menge Kodier-Arbeit, bei der einen viele Software-Produkte auch allein lassen.

Um solche Kodier-Arbeiten zu beschleunigen, kann ein kleines Tool hilfreich sein, dass einem diese Arbeit abnimmt. Das hier vorgestellte Perl-Script arbeitet als CGI-Script im Browser. Wenn Sie wollen, können Sie das Tool hier online auf dem Server nutzen. Sie können sich aber auch den Perl-Code des Scripts kopieren und lokal installieren. Voraussetzung für den lokalen Betrieb sind eine lokale HTTP-Umgebung (siehe SELFHTML: bereichsübergreifende Seite Web-Server lokal auf einem PC einrichten) und ein installierter Perl-Interpreter (bereichsübergreifende Seite Perl lokal auf einem PC einrichten).

Wenn Sie das Tool online hier auf dem Server nutzen wollen, verwenden Sie dazu das folgende Formular:

Geben Sie HTML-Code ein (z.B. aus Zwischenablage kopiert):

Der Code, der nach Anklicken von "Code konvertieren" angezeigt wird, kann via Zwischenablage in eine HTML-Datei kopiert werden und bewirkt dort, dass der Code als HTML-Code dargestellt wird. Empfehlenswert ist die Einbindung des ausgegebenen Inhalts in die HTML-Tags <pre>...</pre>.

nach obennach unten

Beispiel mit Erläuterungen

Zunächst wird das Perl-Script vorgestellt.

Beispiel

#! /usr/bin/perl

use strict;
use CGI;
my $cgi = new CGI;

my $code = $cgi->param('code');
$code =~ s/\&/&amp;/g;
$code =~ s/</&lt;/g;
$code =~ s/>/&gt;/g;
$code =~ s/\"/&quot;/g;

print "Content-type: text/plain\n\n";
print $code;

Erläuterung:

Das Script liest Formulardaten mittels des in Perl verfügbaren CGI-Moduls ein. Erwartet wird Inhalt aus einem Formularfeld namens code (siehe dazu weiter unten). Auf den Inhalt des eingelesenen Feldes werden der Reihe nach vier reguläre Ausdrücke angewendet. Diese besorgen die Konvertierung der HTML-eigenen Zeichen in HTML-Entities. Wichtig ist, dass zuerst die Ampersand-Zeichen (&) verarbeitet werden, da alle weiteren Umwandlungen das & als einleitendes Zeichen der HTML-Entities benötigen. Am Ende gibt das Script den konvertierten Inhalt als reinen Text an den aufrufenden Browser zurück. Als Anwender können Sie den im Browserfenster dargestellten Code anschließend über die Zwischenablage in Ihren HTML-Editor kopieren.

Nun noch ein Beispiel dafür, wie die HTML-Datei mit dem Formular aussehen könnte, die das Script aufruft.

Beispiel

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>HTML in HTML darstellen</title>
</head><body>
<form action="/cgi-bin/html2html.pl" method="post">
<p><b>Code:</b></p>
<p><textarea cols="60" rows="20" name="code"></textarea></p>
<p><input type="submit" value="Konvertieren"></p>
</form>
</body></html>

Erläuterung:

Das textarea-Element im Formular dient zum Hineinkopieren des gewünschten Codes, der in HTML dargestellt werden soll. Beim Absenden des Formulars wird das weiter oben vorgestellte Perl-Script aufgerufen, das die Konvertierung besorgt und das Ergebnis im Browser ausgibt.

Beachten Sie:

Sollten Sie PHP verwenden, so können Sie die Funktionalität des oben vorgestellten Perl-Scripts mit der Funktion htmlentities() erreichen. Für Perl gibt es auch ein CPAN-Modul, das die Funktionalität des obigen Scripts mit einem einzigen Funktionsaufruf erledigt: das Modul HTML::Entities.

nach obennach unten

Weiterführende Links

Die folgenden Stellen werden empfohlen, um das obige Beispiel besser zu verstehen, oder um weitere Möglichkeiten und Details zu erfahren.

bereichsübergreifende Seite SELFHTML: Das CGI-Modul (Perl)

Teil von SELFHTML aktuell Teil von Artikel Teil von CGI/Perl

© 2007 bereichsübergreifende Seite Impressum