Thread Mit RegEx suchen und bei Erfolg Datei ausgeben. (5 answers)
Opened by cbxk1xg at 2004-07-05 19:33

cbxk1xg
 2004-07-05 19:33
#3038 #3038
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Freunde der Sonne,

ich quäle mich nun schon seit einiger Zeit mit einem Schleifen und RegEx Problem. Ich habe ein Array das in irgendeiner Zeile [include=meinedatei.htm] enthält. Wärend ich nun in einer Schleife danach suche, möchte ich die Datei meinedatei.htm einlesen und an die Stelle setzen wo vorher [include=meinedatei.htm] stand.

Bitte sagt mir jetzt nicht, dass ich HTML:Template benutzen soll. Das ist mir viel zu kryptisch.

Meine eigentliche Frage ziehlt darauf ab, ob ich innerhalb einer Regex eine SUB oder ähnliches aufrufen kann. Ich habe diesbezüglich leider keine passende Doku gefunden.

Hier ein Teil des Codes:
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
sub printhtml
{
 print "Content-type: text/html\n\n";

 my (@TEMPLATE) = @_;

 foreach $line (@TEMPLATE)
 {
   $line =~ s-\[include\=(.*?)\]-@INCLUDE = &getInclude( "$path$1" )-g;
   print "$line\n";
 }
}


# Die SUB soll die gesamte Datei in einen String einlesen.
sub getInclude
{
 my ($filename) = @_;
 my (@INCLUDE) = ();
 if ((-e "$filename") && (-f $filename))
 {
   @INCLUDE = ();
   open( INCLUDE, "$filename" );
   foreach $line (<INCLUDE>)
   { $line =~ tr-\n\r--d;
     push( @INCLUDE, $line ); }
   close( INCLUDE );
   return @INCLUDE;
 }
 else { return; }
}


Momentan bekomme ich als Ausgabe nur:
Code: (dl )
= &getInclude( "/123/htdocs/includes/meinedatei.htm" )


Das heißt ich bekomme nur den Text raus, den ich auch reingegeben habe.

View full thread Mit RegEx suchen und bei Erfolg Datei ausgeben.