Welcome! Log In Create A New Profile

Advanced

Re: Как запустить perl-программу в nginx

August 05, 2011 01:34AM
4 августа 2011 г. 23:12 пользователь Денис Ильиных <greyhard@gmail.com>написал:

> попробуйте такой пример. Работает только с GETом )
> use YAML;
>
> sub handler {
> my $r = shift;
>
> my %qparam;
> my @arr = split('&',uri_unescape($r->args));
> for(@arr){
> my @var = split('=',$_);
> $qparam{$var[0]}=$var[1];
> }
>
> $r->header_out("Content-Type","text/html; charset=utf-8");
> $r->send_http_header();
>
> $r->print(Dump(%qparam));
> $r->print($r->uri);
>
> return OK;
>
> }
>
>
> localhost:80/nginx/test/test/?a=1&b=2
>

Благодарю! Получилось. Правда есть нюансы. Окончательный вариант такой:

package perl_module_nginx_my;

use nginx;

sub handler {

my $r = shift;

$r->header_out("Content-Type","text/html; charset=utf-8");
$r->send_http_header();
return OK if $r->header_only;

my %qparam;
my @arr = split('&',$r->args);

for(@arr){
my @var = split('=',$_);
$qparam{$var[0]}=$var[1];
}

$r->print("hello!\n<br/>");

$r->print(join(":",%qparam)) ;
$r->print($r->uri);

return OK;

}

1;
__END__
________________________________________________________

Теперь нюансы:
1. use YAML подключить не получилось. Его почему-то у меня нет. Может
отдельно надо ставить, но и без него в принципе можно обойтись.
2. uri_unescape не работает, возможно потому что не подключен модуль YAML.
Но это не критично. Для передачи простых параметров и так пойдёт...
3. Dump почему-то тоже не работает. Не знаю зачем он там нужен, но я сделал
разбивку массива хэшей через join.
4. Не совсем понятно, зачем в примере модуля hello вот эта строка - return
OK if $r->header_only; На всякий случай оставил ее у себя.

________________________________________________________

Спасибо за помощь!
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Как запустить perl-программу в nginx

Vladislav August 03, 2011 03:50PM

Re: Как запустить perl-программу в nginx

Денис Ильиных August 03, 2011 04:16PM

Re: Как запустить perl-программу в nginx

Vladislav August 04, 2011 04:46AM

Re: Как запустить perl-программу в nginx

Andrey Kopeyko August 04, 2011 05:00AM

Re: Как запустить perl-программу в nginx

Денис Ильиных August 04, 2011 05:02AM

Re: Как запустить perl-программу в nginx

Vladislav August 04, 2011 05:20AM

Re: Как запустить perl-программу в nginx

Vladislav August 04, 2011 05:22AM

Re: Как запустить perl-программу в nginx

Денис Ильиных August 04, 2011 06:14AM

Re: Как запустить perl-программу в nginx

Vladislav August 04, 2011 06:34AM

Re: Как запустить perl-программу в nginx

alexbyk August 04, 2011 07:14AM

Re: Как запустить perl-программу в nginx

Денис Ильиных August 04, 2011 07:38AM

Re: Как запустить perl-программу в nginx

Vladislav August 04, 2011 03:02PM

Re: Как запустить perl-программу в nginx

Денис Ильиных August 04, 2011 04:22PM

Re: Как запустить perl-программу в nginx

Vladislav August 05, 2011 01:34AM

Re: Как запустить perl-программу в nginx

Денис Ильиных August 05, 2011 02:20AM

Re: Как запустить perl-программу в nginx

Gena Makhomed August 03, 2011 04:30PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 174
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready