[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