Thread Zwei Arrays "synchron" ausgeben
(9 answers)
Opened by cbxk1xg at 2008-11-23 15:18
Hier mal die komplett SUB
Code (perl): (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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 sub GetGalleryFileAndCaptions { my ($URLpicdir,$PATHpicdir) = @_; return "Error: couldn't build gallery. The following directory does not exist: $PATHpicdir" if not (-d "$PATHpicdir"); my @allfiles = (); my @dirs = (); my @CAPTIONS = (); my @PICS = (); my $PicDisplayReturn = ""; &untaint( \$PATHpicdir ) or return "Could not untaint directory: $PATHpicdir\n"; opendir(DIR, "$PATHpicdir") or return "Could not open: $PATHpicdir"; @allfiles = sort( readdir( DIR ) ); closedir(DIR); for my $file (@allfiles) { if (-d "$PATHpicdir$file") { push @dirs, $file unless (($file eq ".") or ($file eq "..")); } else { my ($extension) = $file =~ /\.([^.]+?)$/; $extension = lc($extension); push @PICS, $file if ($extension eq "jpg"); } } my $CaptionFile = $PATHpicdir."bu.txt"; open DATA, "<$CaptionFile" or return qq|Program Error! Could not open file: $CaptionFile. Debugging information: $!|; chomp (my @LINES = <DATA>); close DATA; for my $line (@LINES) { $line =~ s/\015\012|\012|\015/\n/sg; } for my $line (@LINES) { my ($caption) = split(/^\n*$/,$line); { push(@CAPTIONS,$caption); } } for my $p (0 .. $#PICS) { $PicDisplayReturn .= "PIC:<br><img src=\"$URLpicdir$PICS[$p]\" alt=\"$CAPTIONS[$c]\" border=\"0\" class=\"GalleryPic\"><br>CAPTION:<br>$CAPTIONS[$c]<hr>"; } #$PicDisplayReturn =~ s/\015\012|\012|\015//sg; return $PicDisplayReturn; } |