Schrift
[thread]56[/thread]

Problem bei CMS - einsetzen des Content: Ab 1,8KB geht nix mehr

Leser: 1


<< >> 3 Einträge, 1 Seite
pktm
 2003-10-08 17:49
#5343 #5343
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Ich habe da ein Content Management Script.
Dieses soll eigentlich INhalte, die extern in Dateien gespeichert sind in ein Template einfügen und anzeigen.
Das mache ich so:
(etwas kompliziert, mit 2 Dateien, aber es geht. man siehe: http://www.intergastro-service.de -> vorläuferversion)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# ---- subs
sub zeigeSeite{
   my $key = $_[0];  #Schlüsselwort für Aufzurufende Seite in /txt/index.txt
   my $pfad = 0;
   my @index = extractFile( $index_file );
# print;
   foreach (@index){
       chomp $_;
       if($_ =~ m/$key\.igs/ig){
           $pfad = (split /\t/,$_)[2];
           last;
       }
   }
   if($pfad eq 0){ print errorSeite( $query->{action}, "zeigeSeite: $!" ); exit( 1 ); } # -> Fehlerseite?
   my @inhalt = extractFile( $pfad );
   foreach (@inhalt){
       chomp $_;
   }
# ---------------------------------------------------
# DYN. INHALT

   $subs{titel}        = (split/\|/, $inhalt[0])[2];
   $subs{keywords}     = (split/\|/, $inhalt[1])[2];
   $subs{desc}         = (split/\|/, $inhalt[2])[2];
   $subs{page_topic}   = (split/\|/, $inhalt[3])[2];
   my $page            = (split/\|/, $inhalt[4])[2];

   $subs{inhalt} = join"", substitute( extractFile( $page ) );                 # CONTENT auselesen & serialisieren
   $subs{inhalt} =~ s/\n//g; #dachte, es könnte an den Zeilenümbrüchen liegen...
   $subs{inhalt} =~ s/\r//g;

   print substitute( extractFile( $index ) );                                  # SUBSTITUTION IN INDEX.HTML
   
# print;

} #ZeigeSeite


Wenn ich dieses Script jetzt aber eine Webseite anzeigen lassen will, welche größer als 1,8Kb ist (also die externe Datei mit dem Inhalt), dann bleibt der Perl-Prozess irgendwie hängen.
Ich hgabe auf das Zeichen genau eine 1,8Kb-große Datei erstellt.
Diese geht noch.
Ein Zeichen mehr und das Ding bleibt hängen.
Es liegt auch nicht an der Verwendung von < oder >, das habe ich überprüft.
Kann mir da wer helfen? Ich jedenfalls kann es mir nicht erkläen.
mfg pktm
PS: Wenn wer Kritik, Anregungen oder ganz andere Vorschläge zu einem neuen super-CMS oder meiner Programmierschreibweise hat bitte per PM mailen (nur nicht hier ;) )
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2003-10-08 19:59
#5344 #5344
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie liest Du denn die Datei ein?? Zeig mal Deine Subroutinen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2003-10-08 21:43
#5345 #5345
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
sub extractFile{
# ---- usage
# my @extractedFile = extractFile( "FileName" ); # dieing if file doesn't exists
   my $file = $_[0];
   open(DAT, "$file") || die "$! ($file)";
   my @inhalt = <DAT>;
   close(DAT);
   return @inhalt;
} #extractFile
# --------------------------------------------------------
sub substitute{
# ---- usage
# my @substitutedFile = substitute( @contentToSubstitute ); # substitute-keywords must be added to %subs (global %hash)
   my @err = ();                                                               # array für fehler
   my @file = @_;
   foreach my $eintrag( @file ){
       if( $eintrag =~ /\%\%(.*)\%\%/ ){
           my $keyword = $1;
           unless( exists $subs{$keyword} ){ push @err, "Wert nicht gesetzt: $keyword\n"; $subs{$keyword} = ""; }
           unless( $eintrag =~ s/\Q$&\E/$subs{$keyword}/g ){ print STDERR "Fehler beim ersetzen!\n"; }
           print STDERR "ersetzte: $& mit $eintrag\n";
       }
   }
   print STDERR @err;
   return @file;
} #substitute
# --------------------------------------------------------

Ich habe übrigens noch was neues herausgefunden.
Wenn ich im Main-Template was herausnehme kann ich in der anzuzeigenden Datei was einfügen. Irgendwie hängt das zusammen, aber die Relation ist nicht 1:1. Also wenn ich aus dem main_template 5 Zeichen herausnehme kann ich  mehr als 5 Zeichen in die andere Einfügen.
Das ganze ist übrigens nicht durch bestimmte Tags bestimmt, das habe ich ausprobiert. Es lag also nicht z.B. an der DTD, da macht mein Script z.B. auch Probleme. Aber das ist eine andere Geschichte (gehört nicht hier hin).
mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 3 Einträge, 1 Seite



View all threads created 2003-10-08 17:49.