Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Php und ssi





Frage

Hallo Mit-Freaks ;-) Ich frage mich wie ich es vereinbaaren kann dass ich meine *.php-dateien die SSI anweisungen richtig ausführen! Ich weiß nicht ob es ein Server oder Klientseitiges Problem ist. Offiziell werden nun *.shtml-Dateien richtig ausgeführt! Bitte schnellst möglich lösungen Posten. Danke Ravinstoned

Antwort 1 von abc123

Hier ein SSI-Ersatz in Perl.
Beispielaufruf:
(index.html enthält SSI)

http://www.o-auch-immer.de/ssiparse.cgi?http://www.o-auch-immer.de/index.html

# Ausgabepufferung aus
$| = 1;

# Library für WWW-Zugriff laden
use LWP::Simple;

# Zu parsendes HTML-Dokument ermitteln
$shtml = $ENV{QUERY_STRING};

# Zu parsendes HTML-Dokument laden
unless (defined ($page = get($shtml))) {
die "FEHLER: Kann die URL $shtml nicht ermitteln! ";
}

# Jeded Zeile im getrennten Array-Element
@page = split(/ /,$page);

# Header ausgeben
print "Protocol: $ENV{SERVER_PROTOCOL} 200 OK ",
"Server: $ENV{SERVER_SOFTWARE} ",
"Content-type: text/html ";

# Alle SSI-Calls in HTML bearbeiten
foreach $line (@page){
# Solange in akt. Zeile SSI vorhanden
while ($line =~ /<!--#exec cgi="([^"]*)"-->/)
{
# Skript aufrufen, Ergebnis nach $result
unless (defined ($result = get($1))) {
$result = "FEHLER: Kann die SSI-URL $1 nicht ermitteln!";
}
# SSI durch Ergebnis ersetzen
$line =~ s/<!--#exec cgi="([^"]*)"-->/$result/;
}
# Akt. HTML-Zeile ausgeben
print "$line ";
}
exit(0);

Gruss,
Michael