The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"как переделать Get-запрос в Хэш"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"как переделать Get-запрос в Хэш"  
Сообщение от sturgeon (ok) on 29-Фев-08, 14:00 
После заполнения формы и нажатия волшебной кнопочки в перле получаю переменную с запросом $query="fam=Иванов&im=Иван&otch=Иванович&den_r=01&mes_r=01"

какбы так половчее сделать хэш, типа
%hash=(fam,Иванов,im,Иван,otch,Иванович,den_r,01,mes_r,01)?

@a=split(/&/,$query), потом потом элементы @a сплитить через /=/... долго

у кого есть готовая короткая и никому не понятная регулярновыраженческая строчка? =)

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "как переделать Get-запрос в Хэш"  
Сообщение от angra (ok) on 29-Фев-08, 15:01 
Неужели каждый начинающий веб-программер хочет изобрести этот велосипед? Что мешает использовать готовые модули, религия или шило в жопе?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "как переделать Get-запрос в Хэш"  
Сообщение от sturgeon (ok) on 29-Фев-08, 15:24 
>Неужели каждый начинающий веб-программер хочет изобрести этот велосипед? Что мешает использовать готовые
>модули, религия или шило в жопе?

модули - черные ящики с лишней хренью... и религия, и щило и еще 10 000 причин не дадут мне использовать модули

read(STDIN, $data, $ENV{'CONTENT_LENGTH'});
$query=urldecode($data);
@formfields=split(/&/,$query);
foreach(@formfields){@zzz=split(/=/,$_);@xxx=(@xxx,@zzz);}
%hash=@xxx;

так долинно, наверняка можно регулярным выражением в одну строчку все сделать.
как в split указать разделителем сразу 2 символа (& и =)?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "как переделать Get-запрос в Хэш"  
Сообщение от angra (ok) on 29-Фев-08, 15:39 
>модули - черные ящики с лишней хренью... и религия, и щило и
>еще 10 000 причин не дадут мне использовать модули

Это похоже не лечится. Ну изобретайте свой велосипед дальше, когда набьете достаточно шишек можете заглянуть в код уже существующих модулей и увидеть сколько всего вы не учли.

Ну а непосредственно на ваш вопрос ответ простой - определите класс символов: split /[=&]/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "как переделать Get-запрос в Хэш"  
Сообщение от sturgeon (ok) on 29-Фев-08, 15:48 
>Ну а непосредственно на ваш вопрос ответ простой - определите класс символов:
>split /[=&]/

Спасибо =)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "как переделать Get-запрос в Хэш"  
Сообщение от anonymous (??) on 29-Фев-08, 20:28 
>Это похоже не лечится. Ну изобретайте свой велосипед дальше, когда набьете достаточно
>шишек можете заглянуть в код уже существующих модулей и увидеть сколько
>всего вы не учли.

+100.  Все интернет-протоколы намного сложнее, чем это кажется среднестатистическому программисту.  А потом у нас, у юзеров, например, не работают почтовые адреса со знаком "плюс", например foo+bar@example.com.  Просто потому что большинство "веб-программистов" считают, что это неправильный адрес, и его просто нельзя ввести в большинство веб-форм регистрации.  Список того, что не работает, но должно, можно продолжать до бесконечности.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "как переделать Get-запрос в Хэш"  
Сообщение от alexvs email(??) on 13-Мрт-08, 21:33 
>Ну а непосредственно на ваш вопрос ответ простой - определите класс символов:
>split /[=&]/

В случаи, если значение одного из параметров будет не определенно (Пример: $query="fam=&mes_r=01"), то обработается не корректно. Лучше использовать функцию param модуля CGI.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру