 |
In manchen Situationen ist es notwendig, die Ausgaben eines Scripts zu modifizieren. Zum Beispiel dann, wenn Sie ein Such-Script haben und die Ausgaben in Ihr eigenes Layout pressen wollen. Eine Modifikation des Such-Scripts selbst kann aber recht aufwändig sein. Wenn es dagegen möglich wäre, erst das Original-Script auszuführen und dann die Ausgaben zu modifizieren, wäre das in vielen Situationen eine Erleichterung.
#!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser);
if($ENV{'REQUEST_METHOD'} eq 'GET') { $Daten = $ENV{'QUERY_STRING'}; } else { read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'}); }
print "Content-type: text/html\n\n";
print "Vor dem Script-Output"; # Hier z.B. Ausgabe eines Layouts
$ENV{'REQUEST_METHOD'} = 'GET'; $ENV{'QUERY_STRING'} = $Daten;
my $output = `perl original.pl`;
$output =~ s#Content-type: text/html##;
print $output;
print "Nach dem Script-Output"; # Hier z.B. weitere Ausgaben, z.B. Fußzeile
Wie funktioniert dieses Script? Das Script (Wrapper-Script) wird gestartet, anstelle des Original-Scripts. Innerhalb des Scripts wird dann das Original-Script ausgeführt, zum Glück aber mit den gleichen Dateihandles und Umgebungsvariablen wie das erste Script. Die Ausgaben werden eingesammelt, modifiziert und mit zusätzlichen Angaben ergänzt.
Dabei sollten folgende Voraussetzungen erfüllt sein: Wrapper- und Original-Script müssen beide ausführbar sein, sowohl von den Dateirechen her als auch von der Syntax. Weiterhin sollten beide Scripts im selben Verzeichnis liegen. 'perl' muss sich im Standard-Suchpfad befinden. Wenn dem nicht so ist, so muss die Ausführungs-Zeile im Wrapper um den vollständigen Pfad zu Perl ergänzt werden.
Besonders gut funktioniert das, wenn Sie dem Wrapper-Script den Dateinamen des ursprünglichen Scripts geben. Dann wird auch das Wrapper-Script aufgerufen, wenn das Original-Script sich eigentlich selbst aufrufen will.
Funktioniert solch ein Wrapper immer? Nein, anscheinend leider nicht. Bei unseren Tests hatten wir gute Ergebnisse, so z.B. mit dem Such-Script, das wir auf AWD einsetzen. Probleme gab es nur bei der Ausführung des Admin-Modus: Unsere Konfiguration sah vor, den Wrapper unter "search.pl" und das Original-Script unter "r_search.pl" in das entsprechende Verzeichnis zu legen. Bei einem Aufruf von search.pl mit Argumenten für den Admin-Modus gab das Script jedoch nur die Standard-Hilfeseite zurück. Abhilfe schaffte ein direkter Aufruf von r_search.pl vom Browser aus.
|
 |
|
|
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt! |
|
|
Einführung in CSS bei HTMLWorld.
|
|