You are not logged in.

  • Login

1

Thursday, June 26th 2008, 10:52am

Url encode in Perl im PHP Stil

Hi,

ich möchte in Perl eine Url genau im gleich Stil encodieren wie mit der PHP Funktion urlencode() .

Das Problem ist, dass die klassischen Methoden von Perl statt einem Leerzeichen %20 setzen, und nicht wie in PHP ein + .

Kennt jemand vielleicht eine gute Funktion? Hab jetzt schon eine ganze Weile gesucht und nichts gefunden... Muss auch sagen, dass ich in Perl nicht der so fit bin um es manuell zu encodieren :(

Bin für jeder Hilfe sehr dankbar :)

grüße Janni

2

Thursday, June 26th 2008, 11:59am

Schau dir dazu mal das urlencode Manual von PHP an um den Unterschied zu rawurlencode zu erfahren:

Quoted

Gibt einen String zurück, in dem alle nicht-alphanumerischen Zeichen außer -_. durch ein Prozentzeichen (%) gefolgt von zwei Hexadezimalwerten und Leerzeichen durch ein Plus (+) ersetzt werden. Das Encoding geschieht auf dem gleichen Wege, wie auch durch ein WWW-Formular gepostete Daten kodiert werden - das entspricht der Auszeichnung des Dateityps application/x-www-form-urlencoded. Diese Auszeichnung differiert von der Kodierung nach » RFC 1738 (siehe auch rawurlencode()), bei der aus historischen Gründen das Leerzeichen als Pluszeichen (+) kodiert wird.


Der einzige Unterschied ist also das %20.
Das kannst du ja einfach ersetzen:

Perl Quellcode

1
$getstring =~ s/\%20/\+/g;
(ungetestet)

3

Thursday, June 26th 2008, 2:27pm

Wunderbar, ich danke dir :)

Schönen Gruß Janni

Similar threads

Social bookmarks