Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Perl

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 08.06.2002, 00:35
WD` вне форума Посмотреть профиль Отправить личное сообщение для WD` Найти все сообщения от WD`
  № 1  
WD`
 
Аватар для WD`

Регистрация: Sep 2001
Адрес: Кишинёв
Сообщений: 1,516
Отправить сообщение для WD` с помощью ICQ
Question разбиение строки

При передаче методом Get
как получить 2 массива: один с именами переменных, а др. с их значениями?

Старый 08.06.2002, 01:08
Gandalf вне форума Посмотреть профиль Отправить личное сообщение для Gandalf Найти все сообщения от Gandalf
  № 2  
Gandalf

Регистрация: Jul 2000
Адрес: Kitchener/Canada
Сообщений: 114
Отправить сообщение для Gandalf с помощью ICQ
oops не то
__________________
always confused


Последний раз редактировалось Gandalf; 08.06.2002 в 01:14.
Старый 08.06.2002, 09:26
Fouly вне форума Посмотреть профиль Отправить личное сообщение для Fouly Найти все сообщения от Fouly
  № 3  
Fouly

Регистрация: Dec 1999
Сообщений: 258
Используй модуль CGI

Код:
use CGI;
my $query = new CGI();
Можно получить массив с именами:
Код:
my @names = $query->param;
далее создать массив со значениями:
Код:
my @vals;
foreach (@names) {
	push(@vals, $query->param($_));
}
Ещё можно получить сразу хэш:
Код:
my %input = $query->Vars;

Старый 09.06.2002, 14:41
WD` вне форума Посмотреть профиль Отправить личное сообщение для WD` Найти все сообщения от WD`
  № 4  
WD`
 
Аватар для WD`

Регистрация: Sep 2001
Адрес: Кишинёв
Сообщений: 1,516
Отправить сообщение для WD` с помощью ICQ
Пасиб большое, Fouly

Старый 11.06.2002, 18:03
  № 5  
Fyn
Guest

Сообщений: n/a
Привет.
Можно обойтись и без модуля CGI...

Код:
$dl = $ENV{CONTENT_LENGTH};
$query = $ENV{QUERY_STRING};

if ($dl >0) {
  sysread(STDIN, $que, $dl);
  if ($query) {
    $query = $query.'&'.$que;
  }
  else {
    $query = $que;
  }
}
	
@comm = split('&', $query);

foreach (@comm) {
  /([^=]+)=(.*)/ && do {
    local ($field, $value) = ($1, $2);
    $value =~ s/\+/ /g;
    $value =~ s/%([0-9A-H]{2})/pack('C',hex($1))/eg;
    $query{$field} = $value;
  }
}
После чего получаем хэш %query ...

А дальше совсем просто:

Код:
foreach $key (keys %query) {
  $value = $query{$key};
  print "$key => $value";
}
Это работает как через GET так и через Post или при одновременной передаче данных через GET и POST.

Старый 12.06.2002, 15:15
WD` вне форума Посмотреть профиль Отправить личное сообщение для WD` Найти все сообщения от WD`
  № 6  
WD`
 
Аватар для WD`

Регистрация: Sep 2001
Адрес: Кишинёв
Сообщений: 1,516
Отправить сообщение для WD` с помощью ICQ
thx, попробуем

Создать новую тему   Часовой пояс GMT +4, время: 02:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.