Да, конечно, задача очень распространенная. Я сам до недавних пор чистил такие вещи dreamweaver'овской функцией, а потом при помощи его же поиска/замены убирал лишние тэги.
Но как раз вчера, когда мне принесли с десяток вордовых файлов для публикации на сайте, я решил, что с меня хватит и написал перловый скрипт.
Так что с пылу с жару. Может, где-то еще есть недочеты, но я проверял на файлах с таблицами - все лишнее убирает. Естественно, она берет на входе не вордовый файл, а уже сохраненный из него html.
here it is:
----------------------8<—
if ($#ARGV == -1)
open(FH, "< $ARGV[0]"); open(FH2, "> $ARGV[0].htm"); undef $/;
my $content = <FH>;
@stripTags = ("span", "div", "font", "style"); @remAttrs = ("style", "class", "width", "height", "bgcolor");
$content =~ s/<!--(.*?)-->//igs; #comments
foreach $tag(@stripTags) { $content =~ s/<$tag[^>]*>//igs; $content =~ s/<\/$tag[^>]*>//igs; }
foreach $attr(@remAttrs) { $content =~ s/$attr=['|"](.*?)['|"]//igs; #with quotes $content =~ s/$attr=(.*?) //igs; #w/o quotes }
print FH2 $content; close FH; close FH2;
----------------------8<—
Если есть предложения по модификации, давайте обсудим. Думаю, многим будет полезно.
|