Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Paul Kulchenko                       2:5020/400     12 Jul 2000  20:31:30
 To : All
 Subject : Re: просветите
 -------------------------------------------------------------------------------- 
 
 Hi, Andrew!
 
 Andrew Zhilenko wrote:
 
 > > Hарод просветите плиз, что делает данный кусок кода:
 > > $member=$ENV{'QUERY_STRING'};
 > Это кому-то не лень было изобретать велосипед. :-) Это парсинг
 
 Hу не всегда. Я сам против изобретения (пользуюсь библиотеками где
 возможно), но иногда заказчик вне твоего контроля и не хочет ничего
 менять. Hедавно попросили сделать скрипт, эта часть была как раз из двух
 строчек, но выяснилось, что у заказчика стоит достаточно старый перл,
 нет CGI.pm вовсе и load-balancing на 70 серверов, соответственно ничего
 они менять и устанавливать не хотят. Пришлось сделать нечто такое на
 чистом перле:
 
 sub unescape {
   return undef unless defined(my $todecode = shift);
   for ($todecode) { tr/+/ /; s/%([0-9a-fA-F]{2})/pack "c", hex $1/eg; }
   return $todecode;
 }
 
 sub parameters {  
   my $params = '';
   if ($ENV{'REQUEST_METHOD'} =~ /^GET$/i) { 
     $params = $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
   }   
   if ($ENV{'REQUEST_METHOD'} =~ /^POST$/i) { 
     read(STDIN,$params,$ENV{'CONTENT_LENGTH'});  
     # also add parameters from QUERY_STRING
     $params .= (length($params) ? '&' : '') . $ENV{'QUERY_STRING'} if
 defined $ENV{'QUERY_STRING'};
   }
   # split parameters and return hash with pairs name => value
   map { map {unescape $_} split(/=/,$_,2) } split /[&;]/, $params;
 }
 
 parameters вернет hash с параметрами. Может кому пригодится. Так что не
 все так просто.
 
 Best wishes, Paul.
 --- ifmail v.2.15dev5
  * Origin: Rostelecom/Internet Centre (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 просветите   Dmitry Tyutyunnikov   10 Jul 2000 15:58:00 
 Re: просветите   Artem Chuprina   11 Jul 2000 10:58:14 
 Re: просветите   Andrew Zhilenko   12 Jul 2000 00:52:51 
 Re: просветите   Paul Kulchenko   12 Jul 2000 20:31:30 
 Re: просветите   Artur Penttinen   12 Jul 2000 00:49:29 
Архивное /ru.cgi.perl/35556df086bf.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional