Url kodieren

Hallo,

ich suche nach einer Möglichkeit Variablen die ich mit einem Perl-Skript an eine URL schicke vorher zu kodieren. Also das was man in PHP mit urlencode() machen kann.

Vielleicht hat schon einer von Euch einen fertigen regulären Ausdruck hierfür :smile:? Würde mich freuen, wenn mir jemand weiterhelfen kann.

Gruß
Till

Hallo,

ich suche nach einer Möglichkeit Variablen die ich mit einem
Perl-Skript an eine URL schicke vorher zu kodieren. Also das
was man in PHP mit urlencode() machen kann.

use URI::Escape;
$url = uri_escape(„Daten“)

Alex

ich suche nach einer Möglichkeit Variablen die ich mit einem
Perl-Skript an eine URL schicke vorher zu kodieren. Also das
was man in PHP mit urlencode() machen kann.

use CGI ‚:standard‘;

$encoded_variable = CGI::escape($variable);

Klaus

Danke fuer Eure Antworten. Ich habe das inzwischen mit einer kleinen Funktion geloest, da ich auf dem Server kein URI bzw. CGI Modul laufen habe.

sub httpEncode {
my ($text) = @_;
$text =~ s/%/%25/g;
$text =~ s/([^a-zA-Z0-9 _-.%])/sprintf „%%%02lx“,ord($1)/eg;
$text =~ s/ /+/g;
return $text;
}
Gruß
Till

Danke fuer Eure Antworten. Ich habe das inzwischen mit einer
kleinen Funktion geloest, da ich auf dem Server kein URI bzw.
CGI Modul laufen habe.

Dann schau Dir wenigstens das Modul URI::Escape einmal an, bevor Du selber eine fehlergafte Lösung zusammenhäkelst.

Abgesehen davon ist das URI::Escape Modul recht klein und relativ unabhängig, so dass Du es einfach in Dein cgi-bin Verzeichnis kopieren kannst.

Ich spare mir jetzt das Geblubber über „seltsame Server“, die nicht mal das CGI Modul installiert haben. Sowas gehört heute zum Standard und wie willst Du sichere und vernünftige Scripts entwickeln, wenn Du das Rad jedesmal neu und vermutlich fehlerhaft erfinden mußt?
Siehe obiges Beispiel:
Deine Implementierung entspricht weder RFC RFC 2396/2732, noch ist sie optimal, geschweige denn korrekt …

Klaus