use strict;
use warnings;
-use utf8;
use Exporter 'import';
-our @EXPORT_OK = qw(html_unescape xml_escape);
+our $VERSION = '0.003';
+
+our @EXPORT_OK = qw(html_escape html_unescape);
# To generate a new HTML entity table run this command
# perl examples/entities.pl
$ENTITIES{$1} = defined $3 ? (chr(hex $2) . chr(hex $3)) : chr(hex $2);
}
-# Characters that should be escaped in XML
-my %XML = (
+# Characters that should be escaped in HTML/XML
+my %ESCAPE = (
'&' => '&',
'<' => '<',
'>' => '>',
'\'' => '''
);
-sub html_unescape {
+sub html_escape {
my $str = shift;
- $str =~ s/&(?:\#((?:\d{1,7}|x[0-9a-fA-F]{1,6}));|(\w+;))/_decode($1, $2)/ge;
+ $str =~ s/([&<>"'])/$ESCAPE{$1}/ge;
return $str;
}
-sub xml_escape {
+sub html_unescape {
my $str = shift;
- $str =~ s/([&<>"'])/$XML{$1}/ge;
+ $str =~ s/&(?:\#((?:\d{1,7}|x[0-9a-fA-F]{1,6}));|(\w+;))/_decode($1, $2)/ge;
return $str;
}
=head1 NAME
-DOM::Tiny::Entities - Encode or decode HTML entities in strings
+DOM::Tiny::Entities - Escape or unescape HTML entities in strings
=head1 SYNOPSIS
- use DOM::Tiny::Entities qw(html_unescape xml_escape);
+ use DOM::Tiny::Entities qw(html_escape html_unescape);
my $str = 'foo & bar';
$str = html_unescape $str; # "foo & bar"
- $str = xml_escape $str; # "foo & bar"
+ $str = html_escape $str; # "foo & bar"
=head1 DESCRIPTION
=head1 FUNCTIONS
+=head2 html_escape
+
+ my $escaped = html_escape $str;
+
+Escape unsafe characters C<&>, C<< < >>, C<< > >>, C<">, and C<'> in string.
+
+ html_escape '<div>'; # "<div>"
+
=head2 html_unescape
my $str = html_unescape $escaped;
html_unescape '<div> # "<div>"
-=head2 xml_escape
-
- my $escaped = xml_escape $str;
-
-Escape unsafe characters C<&>, C<< < >>, C<< > >>, C<">, and C<'> in string.
-
- xml_escape '<div>'; # "<div>"
-
=head1 BUGS
Report any issues on the public bugtracker.