1
2
3
4
<?php
$text = 'ÄÖÜ ß &lt; | &gt;';
$text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
?>

Text vorher: ÄÖÜ ß < | >
Text nachher: ÄÖÜ &szlig; &lt; | &gt;

Damit wurden Sonderzeichen maskiert, was in Perl nicht ganz so einfach machbar ist. Zumindest nicht mit einer „built-In“-Funktion.

Nun kann man sich zwar ein Script schreiben, welches einfach alle Zeichen maskiert, oder man nutzt HTML::Entities.

HTML::Entities – Encode or decode strings with HTML entities
SYNOPSIS

1
2
3
4
5
use HTML::Entities;

$a = "V&aring;re norske tegn b&oslash;r &#230res";
decode_entities($a);
encode_entities($a, "\200-\377");

For example, this:

1
2
$input = "vis-à -vis Beyoncé's naïve\npapier-mâché résumé";
print encode_entities($input), "\n"

Prints this out:

vis-à-vis Beyoncé’s naïve
papier-mâché résumé

Ein simples Anwendungsbeispiel, wie ich es vor kurzem brauchte:

1
2
3
4
5
use strict;
use HTML::Entities ();

my $text = $::input{'text'};
$text = HTML::Entities::encode($text);

Weiterführende Infos in der Moduldokumentation

Artikel / Seite weiterempfehlen

Schreibe einen Kommentar

Ihre Email-Adresse wird nicht veröffentlicht. Pflichtfelder sind durch * markiert.

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>