Splitting-Problem
Ralf
- cgi
0 Klaus Mock0 Ralf0 Klaus Mock0 Ralf
Guten Tag liebe Forumer.
Ich wäre sehr dankbar, wenn mir jemand erklären könnte, was folgende Splitting-Funktion bewirkt:
$value =~ s/<([^>]|\n)*>//g;
Ich würde außerdem gern wissen, wie ich diesen Befehl abwandeln muss, damit HTML-Code nicht bearbeitet wird.
Grüße,
Ralf
Hallo,
Ich wäre sehr dankbar, wenn mir jemand erklären könnte, was folgende Splitting-Funktion bewirkt:
$value =~ s/<([^>]|\n)*>//g;
Erstens ist das keine Splitting-Funktion sondern eine Substitutions-Operation. Und sie bewirkt, daß alles, was irgendwie zwischen zwei Spitzenklammern steht, inklusive der Klammern, entfernt wird. Warum wird das wohl gemacht?
Ich würde außerdem gern wissen, wie ich diesen Befehl abwandeln muss, damit HTML-Code nicht bearbeitet wird.
In dem Du einfach am beginn der Zeile ein # einfügst;-)
Grüße
Klaus
PS.:
Lesen bildet:
http://www.perldoc.com/perl5.6.1/pod/perlretut.html
http://www.perldoc.com/perl5.6.1/pod/perlre.html
Hallo Klaus.
In dem Du einfach am beginn der Zeile ein # einfügst;-)
Dann werden leider auch Zeilenumbrüche im Formularfeld ignoriert und der gesamte Inhalt in eine Zeile geschrieben.
Wenn ich also eingebe:
Text
Noch mehr Text
usw
Dann wird es so gespeichert:
TextNoch mehr Textusw
Wie kann ich dieses Problem beheben?
Danke schonmal für deine Hilfe,
Ralf
Hallo,
In dem Du einfach am beginn der Zeile ein # einfügst;-)
Dann werden leider auch Zeilenumbrüche im Formularfeld ignoriert und der gesamte Inhalt in eine Zeile geschrieben.
Irgendwie kann ich das so nicht nachvollziehen. Wie kann es sein, daß mit ser Substitutionsoperation mehr übrig bleibt, also ohne ihr?
Kannst Du eventuell etwas mehr Code posten. Relevant sind alle Anweisungen, die den Text in $value verändern (können). Aber poste bitte nicht das ganze Script.
Grüße
Klaus
Hallo Klaus,
erstmal danke, dass du dir überhaupt die Zeit nimmst!!!
Irgendwie kann ich das so nicht nachvollziehen. Wie kann es sein, daß mit ser Substitutionsoperation mehr übrig bleibt, also ohne ihr?
Kannst Du eventuell etwas mehr Code posten. Relevant sind alle Anweisungen, die den Text in $value verändern (können). Aber poste bitte nicht das ganze Script.
Hier ist der relevante Teil:
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $input);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<([^>]|\n)*>//g;
$FORM{$name} = $value;
}
Danke!
Ralf