📄 uri.pm
字号:
# # /*# * *********** WARNING **************# * This file generated by ModPerl::WrapXS/0.01# * Any changes made here will be lost# * ***********************************# * 01: lib/ModPerl/Code.pm:708# * 02: lib/ModPerl/WrapXS.pm:624# * 03: lib/ModPerl/WrapXS.pm:1173# * 04: Makefile.PL:423# * 05: Makefile.PL:325# * 06: Makefile.PL:56# */# package Apache2::URI;use strict;use warnings FATAL => 'all';use Apache2::XSLoader ();our $VERSION = '2.000002';Apache2::XSLoader::load __PACKAGE__;1;__END__=head1 NAMEApache2::URI - Perl API for manipulating URIs=head1 Synopsis use Apache2::URI (); $hostport = $r->construct_server(); $hostport = $r->construct_server($hostname); $hostport = $r->construct_server($hostname, $port); $hostport = $r->construct_server($hostname, $port, $pool); $url = $r->construct_url(); $url = $r->construct_url($rel_uri); $url = $r->construct_url($rel_uri, $pool); $parsed_uri = $r->parse_uri($uri); $parsed_uri = $r->parsed_uri(); $url = join '%20', qw(one two three); Apache2::URI::unescape_url($url);=head1 DescriptionWhile C<APR::URI> provides a generic API to dissect, adjust and puttogether any given URI string, C<Apache2::URI> provides an API specificto Apache, by taking the information directly from the C<$r>object. Therefore when manipulating the URI of the current HTTPrequest usually methods from both classes are used.=head1 APIC<Apache2::URI> provides the following functions and methods:=head2 C<construct_server>Construct a string made of hostname and port $hostport = $r->construct_server(); $hostport = $r->construct_server($hostname); $hostport = $r->construct_server($hostname, $port); $hostport = $r->construct_server($hostname, $port, $pool);=over 4=item obj: C<$r>( C<L<Apache2::RequestRec object|docs::2.0::api::Apache2::RequestRec>> )The current request object=item opt arg1: C<$hostname> ( string )The hostname of the server.If that argument is not passed,C<L<$r-E<gt>get_server_name|docs::2.0::api::Apache2::RequestUtil/C_get_server_name_>>is used.=item opt arg2: C<$port> ( string )The port the server is running on.If that argument is not passed,C<L<$r-E<gt>get_server_port|docs::2.0::api::Apache2::RequestUtil/C_get_server_port_>>is used.=item opt arg3: C<$pool>( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )The pool to allocate the string from.If that argument is not passed,C<L<$r-E<gt>pool|docs::2.0::api::Apache2::RequestRec/C_pool_>> is used.=item ret: C<$hostport> ( string )The server's hostport string=item since: 2.0.00=backExamples:=over=item *Assuming that: $r->get_server_name == "localhost"; $r->get_server_port == 8001;The code: $hostport = $r->construct_server();returns a string: localhost:8001=item *The following code sets the values explicitly: $hostport = $r->construct_server("my.example.com", 8888);and it returns a string: my.example.com:8888=back=head2 C<construct_url>Build a fully qualified URL from the uri and information in therequest rec: $url = $r->construct_url(); $url = $r->construct_url($rel_uri); $url = $r->construct_url($rel_uri, $pool);=over 4=item obj: C<$r>( C<L<Apache2::RequestRec object|docs::2.0::api::Apache2::RequestRec>> )The current request object=item opt arg1: C<$rel_uri> ( string )The path to the requested file (it may include a concatenation ofI<path>, I<query> and I<fragment> components).If that argument is not passed,C<L<$r-E<gt>uri|docs::2.0::api::Apache2::RequestRec/C_uri_>> is used.=item opt arg2: C<$pool>( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )The pool to allocate the URL fromIf that argument is not passed,C<L<$r-E<gt>pool|docs::2.0::api::Apache2::RequestRec/C_pool_>> is used.=item ret: C<$url> ( string )A fully qualified URL=item since: 2.0.00=backExamples:=over=item *Assuming that the request was http://localhost.localdomain:8529/test?argsThe code: my $url = $r->construct_url;returns the string: http://localhost.localdomain:8529/testnotice that the query (args) component is not in the string. You needto append it manually if it's needed.=item *Assuming that the request was http://localhost.localdomain:8529/test?argsThe code: my $rel_uri = "/foo/bar?tar"; my $url = $r->construct_url($rel_uri);returns the string: http://localhost.localdomain:8529/foo/bar?tar=back=head2 C<parse_uri>Break apart URI (affecting the current request's uri components) $r->parse_uri($uri);=over 4=item obj: C<$r>( C<L<Apache2::RequestRec object|docs::2.0::api::Apache2::RequestRec>> )The current request object=item arg1: C<$uri> ( string )The uri to break apart=item ret: no return value=item warning:This method has several side-effects explained below=item since: 2.0.00=backThis method call has the following side-effects:=over=item 1sets C<L<$r-E<gt>args|docs::2.0::api::Apache2::RequestRec/C_args_>> tothe rest after C<'?'> if such exists in the passed C<$uri>, otherwisesets it to C<undef>.=item 2sets C<L<$r-E<gt>uri|docs::2.0::api::Apache2::RequestRec/C_uri_>> tothe passed C<$uri> without theC<L<$r-E<gt>args|docs::2.0::api::Apache2::RequestRec/C_args_>> part.=item 3setsC<L<$r-E<gt>hostname|docs::2.0::api::Apache2::RequestRec/C_hostname_>>(if not set already) using the (C<scheme://host:port>) parts of thepassed C<$uri>.=back=head2 C<parsed_uri>Get the current request's parsed uri object my $uri = $r->parsed_uri();=over 4=item obj: C<$r>( C<L<Apache2::RequestRec object|docs::2.0::api::Apache2::RequestRec>> )The current request object=item ret: C<$uri>( C<L<APR::URI object|docs::2.0::api::APR::URI>> )The parsed uri=item since: 2.0.00This object is suitable for using with C<L<APR::URI::rpath|docs::2.0::api::APR::URI/C_rpath_>>=back=head2 C<unescape_url>Unescape URLs Apache2::URI::unescape_url($url);=over 4=item obj: C<$url> ( string )The URL to unescape=item ret: no return valueThe argument C<$url> is now unescaped=item since: 2.0.00=backExample: my $url = join '%20', qw(one two three); Apache2::URI::unescape_url($url);C<$url> now contains the string: "one two three";=head1 See AlsoC<L<APR::URI|docs::2.0::api::APR::URI>>, L<mod_perl 2.0documentation|docs::2.0::index>.=head1 Copyrightmod_perl 2.0 and its core modules are copyrighted underThe Apache Software License, Version 2.0.=head1 AuthorsL<The mod_perl development team and numerouscontributors|about::contributors::people>.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -