Mojo::Path-路径
使用Mojo::Path;#分析my$path=Mojo::path->new('/foo%2Fbar%3B/baz.html');比如$path->[0];#生成my$path=Mojo::path->new('/i/♥');推@$path,“mojolicious”;说出“$path”;
Mojo::路径是使用的路径的容器Mojo::URL,基于副本请求3986.
Mojo::路径实现以下属性。
我的$charset=$path->charset;$path=$path->字符集('UTF-8');
用于编码和解码的字符集,默认为UTF-8型
.
#禁用编码和解码$path->charset(undef);
Mojo::路径从继承所有方法Mojo::基础并实现了以下新功能。
$path=$path->规范化;
通过解析规范化路径.
和..
,此外...
将被视为.
以防止路径遍历攻击。
#“/foo/baz”Mojo::Path->new('/foo/./bar/../baz')->规范化;#“/../baz”Mojo::路径->新建('/foo/../bar/../../baz')->规范化;#“/foo/bar”Mojo::Path->new('/foo/…/bar')->规范化;
我的$clone=$path->clone;
返回新的Mojo::路径从该路径克隆的对象。
我的$bool=$path->包含('/i/♥/mojolicious’);
检查路径是否包含给定前缀。
#真的Mojo::Path->new('/foo/bar')->contains('/');Mojo::Path->new('/foo/bar')->contains('/fo');Mojo::Path->new('/foo/bar')->contains('/foo/bar');#False(错误)Mojo::Path->new('/foo/bar')->contains('/f');Mojo::Path->new('/foo/bar')->contains('/bar');Mojo::Path->new('/foo/bar')->contains('/whatech');
我的$bool=$path->leading_slash;$path=$path->leading_slash($bool);
路径有一个前导斜杠。请注意,此方法将规范化路径,并且%2楼
将被视为/
出于安全考虑。
#“/foo/bar”Mojo::Path->new('foo/bar')->leading_slash(1);#“foo/bar”Mojo::Path->new('/foo/bar')->leading_slash(0);
$path=$path->merge('/foo/bar');$path=$path->merge('foo/bar');$path=$path->merge(Mojo::path->new);
合并路径。请注意,如果需要,此方法将规范化这两条路径,并且%2楼
将被视为/
出于安全考虑。
#“/baz/yada”Mojo::路径->新建('/foo/bar')->合并('/baz/yada');#“/foo/baz/yada”Mojo::Path->new('/foo/bar')->merge('baz/yada');#“/foo/bar/baz/yada”Mojo::Path->new('/foo/bar/')->merge('baz/yada');
my$path=Mojo::路径->新建;my$path=Mojo::path->new('/foo%2Fbar%3B/baz.html');
构建新的Mojo::路径对象和“解析”路径(如果需要)。
$path=$path->parse('/foo%2Fbar%3B/baz.html');
分析路径。
我的$str=$path->to_abs_string;
将路径转换为绝对字符串。
#“/i/%E2%99%A5/mojolicious”Mojo::Path->new('/i/%E2%99%A5/mojolicious')->to_abs_string;Mojo::Path->new('i/%E2%99%A5/mojolicious')->to_abs_string;
我的$parts=$path->parts;$path=$path->部件([qw(foo bar baz)]);
路径分开。请注意,此方法将规范化路径,并且%2楼
将被视为/
出于安全考虑。
#带斜线的零件按@{$path->parts},'foo/bar';
我的$dir=$route->to_dir;
克隆路径并删除最右侧斜杠后的所有内容。
#“/i/%E2%99%A5/”Mojo::Path->new('/i/%E2%99%A5/mojolicious')->to_dir->to_abs_string;#“i/%E2%99%A5/”Mojo::Path->new('i/%E2%99%A5/mojolicious')->to_dir->to_abs_string;
我的$route=$path->to_route;
把小路变成一条路线。
#“/i”/♥/令人兴奋的”Mojo::路径->新('/i/%E2%99%A5/mojolicus')->to_route;Mojo::Path->new('i/%E2%99%A5/mojolicious')->to_route;
我的$str=$path->to_string;
将路径转换为字符串。
#“/i/%E2%99%A5/mojolicious”Mojo::路径->新建('/i/%E2%99%A5/mojolicus')->to_string;#“i/%E2%99%A5/mojolicious”Mojo::Path->new('i/%E2%99%A5/mojolicious')->to_string;
我的$bool=$path->trailing_slash;$path=$path->trailing_slash($bool);
路径有一个尾部斜杠。请注意,此方法将规范化路径,并且%2楼
将被视为/
出于安全考虑。
#“/foo/bar/”Mojo::路径->新建('/foo/bar')->trailing_slash(1);#“/foo/bar”Mojo::Path->new('/foo/bar/')->trailing_slash(0);
Mojo::路径重载以下运算符。
my@parts=@$path;
的别名“部件”注意,这将规范化路径%2楼
将被视为/
出于安全考虑。
说$path->[0];表示@$path;
我的$bool=$路径;
始终正确。
my$str=“$path”;
的别名“字符串”.
Mojolicious公司,Mojolicious::指南,https://mojolicious.org.