CGI das txt.datei-inhalte sammelt und

guten tag,

ist es prinzipell folgendes möglich:

in einem cgi-bin vz. (zb. unterverzeichnis txt) befinden sich einzelne textdateien (.txt), diese werden von einem CGI-script erkannt, danach hintereinander zusammengesetzt und als HTML-seite dargestellt.

die Textdateien variieren in länge und textinhalt, desweiteren werden unterschiedliche anzahl von txt. dateien im speziellen ordner zur verfügung gestellt. die benennung ist auch festgelegt.

Funktionsablauf:
der kunde/benutzer frückt auf einen button und das cgi spricht an…

gibt es fragmente oder bereits ausgearbeitete lösungen, damit das rad hier nicht von mir erneut erfunden werden muss.

vielen dank an euch:wink:

guten tag,

ist es prinzipell folgendes möglich:

in einem cgi-bin vz. (zb. unterverzeichnis txt) befinden sich
einzelne textdateien (.txt), diese werden von einem CGI-script
erkannt, danach hintereinander zusammengesetzt und als
HTML-seite dargestellt.

#!/usr/bin/perl
my $dir="txt";
print "Content-Type: text/plain\n\n";
opendir(D,$dir) or die $!;
foreach(grep {/\.txt$/} readdir(D)) { 
 open(F, "$dir/$\_") or die $!; 
 print while();
 close(F); 
 };
closedir(D);

…die Fehlerbehandlung ist verbessuerungswürdig…

Alexander

Dankeschoen!

nun das (D) bedeutet das verzeichnis mit der benennung „D“.
2.
den code ab

 füge ich wo ein? (auf die action des button?)

3.
was heisst F ?

4.
wie formatiert sich das ganze, wenn zb. bestimmte zeilen in fett, andere in normal gesetzt werden (können)?

PS: es ist recht schwer sich hineinzuversetzen, wegen thematischem wechsel:wink:





> #!/usr/bin/perl
> my $dir="txt";
> print "Content-Type: text/plain\n\n";
> opendir(D,$dir) or die $!;
> foreach(grep {/\.txt$/} readdir(D)) {
> open(F, "$dir/$\_") or die $!;
> print while();
> close(F);
> };
> closedir(D);
> 
>   
>   
> ..die Fehlerbehandlung ist verbessuerungswürdig...  
>   
> Alexander

Dankeschoen!

nun das (D) bedeutet das verzeichnis mit der benennung „D“.

Nein, das D ist ein interner Bezeichner des Verzeichnisses, der beim opendir angelegt wird und beim closedir wieder freigegeben wird. Das Verzeichnis steht am Anfang in $dir.

den code ab

füge ich wo ein? (auf die action des
button?)

Das ist Perl/CGI kein Javascript. Das muss in eine extra Datei, z.B. texte.cgi, die muss ins cgi-bin Verzeichnis auf dem Server (Pfad in $dir dazu richtig angeben), danach moss das Ganze noch ausführbar werden (chmod 755 dateiname; bzw. per ftp). CGI wird vom Server ausgeführt, der Browser bekommt nur das Ergebnis (alles was mit print ausgegeben wird) zu sehen.

was heisst F ?

F ist analog zu D wieder so ein interner Bezeichner (Handle), diesmal für das einlesen der gerade gefundenen Datei.

wie formatiert sich das ganze, wenn zb. bestimmte zeilen in
fett, andere in normal gesetzt werden (können)?

Gar nicht, bei dem Script kommt reiner Text zurück.

#!/usr/bin/perl
my $dir=„txt“;

Das Verzeichnis, wo der Kram liegt, hier Unterverzeichnis txt des aktuellen Verzeichnisses.

print „Content-Type: text/plain\n\n“;

Das sagt dem Browser, das jetzt „nur“ Text kommt und kein HTML.

opendir(D,$dir) or die $!;

Öffnen des Verzeichnisses

foreach(grep {/.txt$/} readdir(D)) {

…für alle Dateien in dem Vrz, die auf .txt enden

open(F, „$dir/$_“) or die $!;

…öffne die Datei zum lesen

print while();

solange noch was da zum lesen, lese das und gib es im Browser aus

close(F);

Datei schließen

};

Ende Schleife „über alle Dateien“

closedir(D);

Verzeichnis schließen

Solltest du perl installiert haben:
perldoc -f opendir
perldoc -f readdir
perldoc -f open

zeigt die Hilfe zu den ganzen Befehlen an, alternativ gibts das auch per perldoc.com

Alexander