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
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

