|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : HB 2:5020/400 19 Jul 2000 18:27:43 To : All Subject : Re: URL-encoding --------------------------------------------------------------------------------
Shaposhnikov Max wrote...
>Hе подскажет кто regexp для кодирования/декодирования
> URL-я в form-url-encoded.
>Чтобы всякие русские буквы и не-урлевые символы заменялись
>на %XX, где XX - 16-ричный код символа.
Соответствующие функции escape(), unescape() есть в CGI.pm. Только
perldoc CGI о них помалкивает, и включать их придется в явном виде:
use CGI (escape, unescape);
Вот как найти эти функции:
grep -B 11 -A 6 "sub escape {" CGI.pm
# unescape URL-encoded data
sub unescape {
shift() if ref($_[0]);
my $todecode = shift;
return undef unless defined($todecode);
$todecode =~ tr/+/ /; # pluses become spaces
$todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
return $todecode;
}
# URL-encode data
sub escape {
shift() if ref($_[0]) || $_[0] eq $DefaultClass;
my $toencode = shift;
return undef unless defined($toencode);
$toencode=~s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
return $toencode;
}
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65773347d2d6.html, оценка из 5, голосов 10
|