Aion-Format
view release on metacpan or search on metacpan
t/aion/format/url.pm view on Meta::CPAN
# $$x = from_url_param $v;
# }
#
# \%param
# }
#
# #@category parse url
#
# sub _parse_url ($) {
# my ($link) = @_;
# $link =~ m!^
# ( (?<proto> \w+ ) : )?
# ( //
# ( (?<user> [^:/?\#\@]* ) :
# (?<pass> [^/?\#\@]* ) \@ )?
# (?<domain> [^/?\#]* ) )?
# ( / (?<path> [^?\#]* ) )?
# (?<part> [^?\#]+ )?
# ( \? (?<query> [^\#]* ) )?
# ( \# (?<hash> .* ) )?
# \z!xn;
# return %+;
# }
#
# # 1 - set / in each page, if it not file (*.*), or 0 - unset
# use config DIR => 0;
# use config ONPAGE => "off://off";
#
# # ÐаÑÑÐ¸Ñ Ð¸ ноÑмализÑÐµÑ url
# sub parse_url($;$$) {
# my ($link, $onpage, $dir) = @_;
# $onpage //= ONPAGE;
# $dir //= DIR;
# my $orig = $link;
#
# my %link = _parse_url $link;
# my %onpage = _parse_url $onpage;
#
# if(!exists $link{path}) {
# $link{path} = join "", $onpage{path}, $onpage{path} =~ m!/\z!? (): "/", $link{part};
# delete $link{part};
# }
#
# if(exists $link{proto}) {}
# elsif(exists $link{domain}) {
# $link{proto} = $onpage{proto};
# }
# else {
# $link{proto} = $onpage{proto};
# $link{user} = $onpage{user} if exists $onpage{user};
# $link{pass} = $onpage{pass} if exists $onpage{pass};
# $link{domain} = $onpage{domain};
# }
#
# # ноÑмализÑем
# $link{proto} = lc $link{proto};
# $link{domain} = lc $link{domain};
# $link{dom} = $link{domain} =~ s/^www\.//r;
# $link{path} = lc $link{path};
#
# my @path = split m!/!, $link{path}; my @p;
#
# for my $p (@path) {
# if($p eq ".") {}
# elsif($p eq "..") {
# #@p or die "ÐÑÑ
од за пÑÐµÐ´ÐµÐ»Ñ Ð¿ÑÑи";
# pop @p;
# }
# else { push @p, $p }
# }
#
# @p = grep { $_ ne "" } @p;
#
# if(@p) {
# $link{path} = join "/", "", @p;
# if($link{path} =~ m![^/]*\.[^/]*\z!) {
# $link{dir} = $`;
# $link{file} = $&;
# } elsif($dir) {
# $link{path} = $link{dir} = "$link{path}/";
# } else {
# $link{dir} = "$link{path}/";
# }
# } elsif($dir) {
# $link{path} = "/";
# } else { delete $link{path} }
#
# $link{orig} = $orig;
# $link{onpage} = $onpage;
# $link{link} = join "", $link{proto}, "://",
# exists $link{user} || exists $link{pass}? ($link{user},
# exists $link{pass}? ":$link{pass}": (), '@'): (),
# $link{dom},
# $link{path},
# length($link{query})? ("?", $link{query}): (),
# length($link{hash})? ("#", $link{hash}): (),
# ;
#
# return \%link;
# }
#
# # ÐоÑмализÑÐµÑ url
# sub normalize_url($;$$) {
# parse_url($_[0], $_[1], $_[2])->{link}
# }
#
# 1;
#
# __END__
#
# =encoding utf-8
#
# =head1 NAME
#
# Aion::Format::Url - utilities for encoding and decoding URLs
#
# =head1 SYNOPSIS
#
# use Aion::Format::Url;
#
# to_url_params {a => 1, b => [[1,2],3,{x=>10}]} # => a&b[][]&b[][]=2&b[]=3&b[][x]=10
( run in 1.074 second using v1.01-cache-2.11-cpan-71847e10f99 )