Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> hex, вопрос... 
:(
    Опции темы
Семён Розовых
Дата 29.11.2002, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.11.2002

Репутация: нет
Всего: нет



Рассматривая многие исходники , я часто обнаруживаю вот такую строчку
$val=~ s/%[0-9a-hA-H] {2}/pack('C',hex($1))/ge;

Я так понимаю - это символы, которые перекодируются в шестнадцатиричную систему. Но зачем? И почему только до h и H, а не весь алфавит?
PM MAIL   Вверх
NightGoblin
Дата 30.11.2002, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: нет
Всего: 11



Это обработка CGI-запросов в формате application/x-www-urlencoded, в которой все символы, не входящие в \w (без локализации) преобразуются в коды вида %<код_символа> - например, %21 перекодируется в "!".

Странно только, почему A-Ha-h, а не A-Fa-f...


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
Семён Розовых
Дата 1.12.2002, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.11.2002

Репутация: нет
Всего: нет



Таким макаром кодируются данные из формы. НО зачем? Что их так что ль просто нельзя обработать?
PM MAIL   Вверх
NightGoblin
Дата 1.12.2002, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: нет
Всего: 11



Дело в том, что когда данные посылаются из формы, имена параметров и их значения, например, разделяются символом "=", а пары "параметр=значение" - символом "&". И если такие символы встретятся в значении параметра, то получится непонятная ситуация, при которой этот символ надо во что-нибудь преобразовать. Ну и, чтобы не было путаницы с кириллицей (в рунете т.е.) или другими спецсимволами (вообще), их так кодируют.

А строчка эта не кодирует, а разбирает закодированное значение параметра (если, конечно, val - это value :)).


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
HalkaR
Дата 8.12.2002, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



На самом деле со всем этим добром сейчас разбираться не к чему. Есть такой хороший и удобный модуль CGI.pm, который сам разбирает запрос и перекодирует его.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0621 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.