hotti: Alle guten Dinge sind dreist: Schon wieder Schei? Encoding...

Beitrag lesen

Moin,

Was Du machen kannst: Nimm einen ganz normalen Parser für den QUERY_STRING, der steckt z.B. in

use URI::Escape;

Quatsch, ne, genau umgekehrt. Ein Parser verwendet Escape. Deine Freunde sind:

use URI::Split qw(uri_split);

($scheme, $auth, $path, $query, $frag) = uri_split($referrer);

für den Fall, Du willst $query selbst in die Parameter zerlegen. Oder Du nimmst gleich:

use URI::QueryParam; # Objekt über den Referrer erstellen

damit kommst Du ohne Umschweife an die gewünschten Parameter.

  
  
  
my $uri = 'http://www.google.de/custom?q=Corel Draw kann keine templates %F6fnnen&sa=Suchen&client=pub-4347119884249993&forid=1&channel=8272761113&ie=ISO-8859-1&oe=ISO-8859-1&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BFORID%3A1%3B&hl=de&meta='; # der Referrer  
  
use URI;  
use URI::QueryParam;  
  
my $u = URI->new($uri);  
  
my @keys = $u->query_param;  
  
print join("\n", @keys);  
  
q  
sa  
client  
forid  
channel  
ie  
oe  
cof  
hl  
meta  

So wirds gemacht, schönen Sonntag ;-)
Oppenheimer