Forum Webscript.Ru

Программирование => Perl => Тема начата: AlieN от 21 Августа 2002, 17:02:05

Название: Кодирование URL
Отправлено: AlieN от 21 Августа 2002, 17:02:05
как закодировать что-то либо дабы это "что-либо"(?,=&и т.д. русские символы) нормально передалось?

в пхп это делается одной функция urlencode а в перле?
Название: Кодирование URL
Отправлено: Unregistered от 21 Августа 2002, 17:57:06
В перле вроде нет такой функции. Тебе самому все преобразования символов надо будет делать.
Название: Кодирование URL
Отправлено: Unregistered от 21 Августа 2002, 18:02:45
Зато есть модуль ЦГИ.пм
Если не хочешь использовать модуль, взгляни в его исходники, и вытащи то, что тебе нужно. Кстати очень часто встречается эта функция в скриптах, написанных ненавистниками ЦГИ.пм В среднем, перерыв скриптов 10, ты увидишь готовое решение

__________________
глебушка я!
Название: Кодирование URL
Отправлено: AlieN от 21 Августа 2002, 18:51:47
Unregistered
ну блин пример покажите с cgi.pm
Название: Кодирование URL
Отправлено: ююю от 21 Августа 2002, 22:04:01
$str=\'name=ююю&city=Караганда\';
while($str=~m/&?(.*?)=(.*?)(?:&|$)/g){
   ($name,$value)=($1,$2);
   $value=~s/([^a-zA-Z0-9.*_ @-])/\'%\' . sprintf "%lx", ord($1)/eg;
   $urlencode.="$name\\=$value&";
}
chop $urlencode;
print $urlencode;

PS Дело было вечером Выпить было нечего
Ну и не больно то и хотелось
Название: Кодирование URL
Отправлено: Unregistered от 21 Августа 2002, 22:29:06
ОПСС

$str=\'name=ююю&city=Караганда\';
while($str=~m/&?(.*?)=(.*?)(?:&|$)/g){
   ($name,$value)=($1,$2);
   $value=~s/([^a-zA-Z0-9.*_ @-])/\'%\' . sprintf "%lx", ord($1)/eg;
   $value=~s/ /+/g;
   $urlencode.="$name\\=$value&";
}
chop $urlencode;
print $urlencode;

Но всё равно криво работать будет
Название: Кодирование URL
Отправлено: glebushka от 22 Августа 2002, 00:04:57
ЦГИ.пм пофигу Гет или Пост и в том и другом случае:

my $Objekt=new CGI;#создаём объект cgi
my $File = $Objekt->param("file");
my $Path= $Objekt->param("path");
и т.д.