|
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64 User : jackjohn ( 502) PHP Version : 5.3.17 Disable Function : NONE Directory : /usr/share/perl5/URI/file/ |
Upload File : |
package URI::file::Unix;
require URI::file::Base;
@ISA=qw(URI::file::Base);
use strict;
use URI::Escape qw(uri_unescape);
sub _file_extract_path
{
my($class, $path) = @_;
# tidy path
$path =~ s,//+,/,g;
$path =~ s,(/\.)+/,/,g;
$path = "./$path" if $path =~ m,^[^:/]+:,,; # look like "scheme:"
return $path;
}
sub _file_is_absolute {
my($class, $path) = @_;
return $path =~ m,^/,;
}
sub file
{
my $class = shift;
my $uri = shift;
my @path;
my $auth = $uri->authority;
if (defined($auth)) {
if (lc($auth) ne "localhost" && $auth ne "") {
$auth = uri_unescape($auth);
unless ($class->_file_is_localhost($auth)) {
push(@path, "", "", $auth);
}
}
}
my @ps = $uri->path_segments;
shift @ps if @path;
push(@path, @ps);
for (@path) {
# Unix file/directory names are not allowed to contain '\0' or '/'
return undef if /\0/;
return undef if /\//; # should we really?
}
return join("/", @path);
}
1;