2

ユーザーから送信されたコンテンツをテストして、HTML が含まれているかどうかを確認したいと思います。また、独自の正規表現を作成せずに実行したいと考えています。これを行うモジュール、またはperlでこれを行う良い方法を知っている人はいますか?

4

1 に答える 1

2

HTML::Restrictモジュールを確認して、コンテンツを許可されたタグのみに制限することができます。

例:

use 5.012;
use strict;
use warnings;
use HTML::Restrict;
use Data::Dumper;

my @texts = map { { "has_html", 0, "text", $_ } }
            split(/==cut-here==/, do{ local $/; <DATA> });

my $res = HTML::Restrict->new();

foreach my $text (@texts) {
    my $tmp = $text->{text};
    my $plain = $res->process($tmp);
    $plain =~ s/\s//gs;
    $tmp =~ s/\s//gs;
    $text->{has_html} = $tmp cmp $plain ? "YES" : "NO";
}
say Dumper(\@texts);

__DATA__

    <img src="image.jpg" alt="tricky>text" />

    text with html
==cut-here==

plain

text here

==cut-here==again <!-- a > b --> with html==cut-here==
plain

テキストの 4 つのチャンクをチェックし、html を検出します。を構成するHTML::Restrictと、「許可」および「許可されていない」HTML タグでもチェックできます。

于 2013-05-16T18:11:03.060 に答える