Thread aus html dateien <style> entfernen (1 answers)
Opened by sunshine998965 at 2017-08-04 13:08

Gast sunshine998965
 2017-08-04 13:08
#187099 #187099
Hallo!
Ich will aus einer Reihe von HTML Dateien alles entfernen, was style oder script enthält. Zunächst werden die Dateien so bearbeitet, dass alle Zeilen mit < beginnen und in den noch unbearbeiteten Array HTML gespeichert werden. Der Rest soll in den Array AUSGABE geschrieben und ausgegeben werden. Leider gibt das Programm nur den Namen einer Datei in meinem Directory aus :( Kann jemand helfen?

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
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
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/perl 
use utf8;
use warnings;

############################### Funktionen
sub Style() {
foreach $element (@HTML) {
if ($element !~ /^<style/) {
push (@AUSGABE, $element);
}
return @AUSGABE;
}
}

######################
sub Style();


$htmldir = "/home/user";

opendir HTMLDIR, $htmldir or die "Kann $htmldir nicht öffnen: $!";

foreach $htmldatei (readdir HTMLDIR) {

if ( $htmldatei =~ /.html$/ ) {

push (@HTML,"<dateiname>" . $htmldatei . "</dateiname>");

$lines = " ";

open (WEBSEITE, "<$htmldatei") or die "can not open $htmldatei:$!";

while (<WEBSEITE>) {

# Leere Zeilen ignorieren
next if ($_ =~ /^\s*$/);

# Inhalt der aktuellen Zeile in Variable $line schreiben
$line = $_;

# Zeilenende löschen
$line =~ s/\n//;

# auf ein Leerzeichen kürzen
$line =~ s/\s+/ /g;

# Tabulator einfügen
$line =~ s/</\t</g;

# Gesamte Website in einer Zeile
$lines = $lines . " " . $line;

# auf ein Leerzeichen reduzieren
$lines =~ s/ +/ /g;
}
}
close WEBSEITE;

# Variable $lines in Array zwischen übernehmen
# Elemente beginnen nun immer mit "<"
@zwischen=split(/\t/,$lines);

push(@HTML,@zwischen);

@zwischen = ();
}

close HTMLDIR;

@AUSGABE = Style();


###################################################################
# Ausgabe bearbeitete Daten
foreach $i (@AUSGABE) {
print $i . "\n";
}

Last edited: 2017-08-04 13:18:44 +0200 (CEST)

View full thread aus html dateien <style> entfernen