version 1.639, 2005/06/17 16:48:13
|
version 1.640, 2005/06/17 16:53:07
|
Line 1379 sub extract_embedded_items {
|
Line 1379 sub extract_embedded_items {
|
src => '', |
src => '', |
movie => '', |
movie => '', |
); |
); |
my $p = HTML::Parser->new |
my $p = HTML::LCParser->new($filepath.'/'.$file); |
( |
while ($t=$p->get_token()) { |
start_h => |
if ($t->[0] eq 'S') { |
[sub { |
my ($tagname, $attr) = ($t->[1],$t->[2]); |
my ($tagname, $attr) = @_; |
push (@state, $tagname); |
push (@state, $tagname); |
if (lc($tagname) eq 'img') { |
if (lc($tagname) eq 'img') { |
&add_filetype($allfiles,$attr->{'src'},'src'); |
&add_filetype($allfiles,$attr->{'src'},'src'); |
} |
} |
if (lc($tagname) eq 'object' || |
if (lc($tagname) eq 'object' || |
(lc($tagname) eq 'embed' && lc($state[-2]) ne 'object')) { |
(lc($tagname) eq 'embed' && lc($state[-2]) ne 'object')) { |
foreach my $item (keys(%javafiles)) { |
foreach my $item (keys(%javafiles)) { |
$javafiles{$item} = ''; |
$javafiles{$item} = ''; |
} |
} |
} |
} |
if (lc($state[-2]) eq 'object' && lc($tagname) eq 'param') { |
if (lc($state[-2]) eq 'object' && lc($tagname) eq 'param') { |
my $name = lc($attr->{'name'}); |
my $name = lc($attr->{'name'}); |
foreach my $item (keys(%javafiles)) { |
foreach my $item (keys(%javafiles)) { |
if ($name eq $item) { |
if ($name eq $item) { |
$javafiles{$item} = $attr->{'value'}; |
$javafiles{$item} = $attr->{'value'}; |
last; |
last; |
} |
} |
} |
} |
foreach my $item (keys(%mediafiles)) { |
foreach my $item (keys(%mediafiles)) { |
if ($name eq $item) { |
if ($name eq $item) { |
&add_filetype($allfiles, $attr->{'value'}, 'value'); |
&add_filetype($allfiles, $attr->{'value'}, 'value'); |
last; |
last; |
} |
} |
} |
} |
} |
} |
if (lc($tagname) eq 'embed' || lc($tagname) eq 'applet') { |
if (lc($tagname) eq 'embed' || lc($tagname) eq 'applet') { |
foreach my $item (keys(%javafiles)) { |
foreach my $item (keys(%javafiles)) { |
if ($attr->{$item}) { |
if ($attr->{$item}) { |
$javafiles{$item} = $attr->{$item}; |
$javafiles{$item} = $attr->{$item}; |
last; |
last; |
} |
} |
} |
} |
foreach my $item (keys(%mediafiles)) { |
foreach my $item (keys(%mediafiles)) { |
if ($attr->{$item}) { |
if ($attr->{$item}) { |
&add_filetype($allfiles,$attr->{$item},$item); |
&add_filetype($allfiles,$attr->{$item},$item); |
last; |
last; |
} |
} |
} |
} |
} |
} |
} elsif ($t->[0] eq 'E') { |
}, "tagname, attr"], |
my ($tagname) = ($t->[1]); |
end_h => |
if ($javafiles{'codebase'} ne '') { |
[sub { |
$javafiles{'codebase'} .= '/'; |
my ($tagname) = @_; |
} |
if ($javafiles{'codebase'} ne '') { |
if (lc($tagname) eq 'applet' || |
$javafiles{'codebase'} .= '/'; |
lc($tagname) eq 'object' || |
} |
(lc($tagname) eq 'embed' && lc($state[-2]) ne 'object') |
if (lc($tagname) eq 'applet' || |
) { |
lc($tagname) eq 'object' || |
foreach my $item (keys(%javafiles)) { |
(lc($tagname) eq 'embed' && lc($state[-2]) ne 'object') |
if ($item ne 'codebase' && $javafiles{$item} ne '') { |
) { |
my $file=$javafiles{'codebase'}.$javafiles{$item}; |
foreach my $item (keys(%javafiles)) { |
&add_filetype($allfiles,$file,$item); |
if ($item ne 'codebase' && |
} |
$javafiles{$item} ne '') { |
} |
my $file=$javafiles{'codebase'}. |
} |
$javafiles{$item}; |
pop @state; |
&add_filetype($allfiles,$file,$item); |
} |
} |
} |
} |
|
} |
|
pop @state; |
|
}, "tagname"], |
|
); |
|
$p->parse_file($filepath.'/'.$file); |
|
$p->eof; |
|
return 'ok'; |
return 'ok'; |
} |
} |
|
|