package com::oclib::perl::util::uriparser::builds::20070707::URIParser;
use com::oclib::perl::lang::Root;
our @ISA = "com::oclib::perl::lang::Root";
use strict;
use warnings;
use utf8;
my $string_utf = "Нормализатор utf ©";
use com::oclib::perl::util::string::builds::20070707::String;
my $string = new com::oclib::perl::util::string::builds::20070707::String();
sub new
{
my $invocant = shift;
my $class = ref($invocant) || $invocant; # cgi => CGI
my $self = {
classCreated => "20050927",
classCreator => "http://www.oclib.com/",
classEditors => "http://www.oclib.com/,http://www.krassotkin.ru/",
classHistory => "20070707,20070212,20060718,20060617,20050927,20051012,20051103",
classIndexLocation => "http://www.oclib.com/library/com/oclib/perl/util/uriparser/",
classLocation => "http://www.oclib.com/library/com/oclib/perl/util/URIParser.pm",
className => "URIParser",
classNamespace => "com::oclib::perl::util::uriparser::builds::20070707::URIParser",
classVersion => "20070707",
classVersionIndexLocation => "http://www.oclib.com/library/com/oclib/perl/util/uriparser/builds/20070707/",
classVersionLocation => "http://www.oclib.com/library/com/oclib/perl/util/uriparser/builds/20070707/URIParser.pm",
debugging => 0,
tracing => 0,
cgi => undef,
uri => undef,
separator => "",
@_};
bless($self, $class);
return $self;
}
sub parse {
my $self = shift;
if($self->{trancing}) {print("URIParser->parse()");};
if(!defined($self->{uri})) {$self->{uri} = $string->trim($ENV{"REQUEST_URI"});};
my $uri = $self->{uri};
$uri =~ /$self->{separator}(\/.*)/g;
my $queryString = $string->trim($1);
$self->{response} .= "queryString: $queryString
\n";
$queryString =~ s/\\x/%/g;
$queryString =~ s/\/x/%/g;
# $queryString =~ s/\.+//g;
$queryString =~ s/\/+/\//g;
$queryString =~ s/\\+/\\/g;
if(!($queryString =~ /\/$/)) {$queryString .= "/";};
$self->{response} .= "queryString: $queryString
\n";
if($queryString ne "" && $queryString ne "/") {
my $flag = 1;
my $c = 0;
while($flag && $c < 20) {
$queryString =~ /^\/([\w%\-\.!]+)\//;
my $key = $string->trim($1);
$queryString =~ s/^\/([\w%\-\.!]+)//;
if($key ne "") {
$queryString =~ /^\/([\w%\-\.!]+)\//;
my $value = $string->trim($1);
$queryString =~ s/^\/([\w%\-\.!]+)//;
$self->{cgi}->param("$key", "$value");
$self->{response} .= "$key = $value
\n";
};
$queryString = $string->trim($queryString);
if($queryString eq "" || $queryString eq "/") {$flag = 0;};
$c++;
};
};
return 1;
}
1;