[Moscow.pm] a=b&c=d
subscribe tochkak.ru
24 01:45:45 PST 2007
Привет!
Позвольте вступить в дискуссию J
Вы все забыли о том, что если несколько значений у ключа, то должен быть список значений, а не первое/последнее значение.
Вариант Сергея Мартынова интересный:
my %h = /([^&=]+)(?:=([^&]*))?&?/g;
Учитывает только последнее значение.
Мой вариант (написанный для диплома в 2006 году :)
foreach (map {split /[&;]/} $stream || ()) {
next unless my ($k, $v) = map {
tr/+/ /;
s/%([A-Za-z0-9]{2})/chr hex $1/eg;
$_;
} split /=/, $_, 2;
push @{$self->{'.param'}->{$k}}, $v;
}
По-моему, вариант на сегодняшний день неидеальный, можно лучше написать, но все же J
С уважением,
Анатолий Шарифулин.
----------- -----------
Вложение в формате HTML было извлечено…
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20071224/f9175e41/attachment.html
----------- -----------
Вложенное сообщение было извлечено…
От: =?koi8-r?B?88XSx8XKIO3B0tTZzs/X?= <sergey martynov.info>
Тема: Re: [Moscow.pm] a=b&c=d
Дата: Sun, 23 Dec 2007 02:37:55 +0300
Размер: 7648
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20071224/f9175e41/attachment.mht
Moscow-pm