模块:莫霍时间:路径
起源:Mojo::基础

名称

Mojo::Path-路径

简介

使用Mojo::Path;#分析my$path=Mojo::path->new('/foo%2Fbar%3B/baz.html');说$path->[0];#生成my$path=Mojo::路径->新建('/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::Path->new('/foo/../bar/../../baz')->规范化;#“/foo/bar”Mojo::Path->new('/foo/…/bar')->规范化;

克隆

我的$clone=$path->clone;

返回新的Mojo::路径从该路径克隆的对象。

包含

我的$bool=$path->包含('/i/♥/mojolicious’);

检查路径是否包含给定前缀。

#真的Mojo::路径->新建('/foo/bar')->包含('/');Mojo::Path->new('/foo/bar')->contains('/fo');Mojo::Path->new('/foo/bar')->contains('/foo/bar');#False(错误)Mojo::路径->新建('/foo/bar')->包含('/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::Path->new('/foo/bar')->merge('/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::path->new;my$path=Mojo::path->new('/foo%2Fbar%3B/baz.html');

构建新的Mojo::路径对象和“解析”路径(如果需要)。

解析

$path=$path->parse('/foo%2Fbar%3B/baz.html');

分析路径。

到_ abs _字符串

my$str=$path->to_abs_string;

将路径转换为绝对字符串。

#“/i/%E2%99%A5/mojolicious”Mojo::路径->新建('/i/%E2%99%A5/mojolicus')->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';

目标目录(_D)

我的$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;

到路线(_R)

我的$route=$path->to_route;

把这条路变成一条路线。

#“/i”/♥/令人兴奋的”Mojo::路径->new('/i/%E2%99%A5/mojolicious')->to_route;Mojo::Path->new('i/%E2%99%A5/mojolicious')->to_route;

到字符串(_S)

我的$str=$path->to_string;

将路径转换为字符串。

#“/i/%E2%99%A5/mojolicious”Mojo::Path->new('/i/%E2%99%A5/mojolicious')->to_string;#“i/%E2%99%A5/mojolicious”Mojo::Path->new('i/%E2%99%A5/mojolicious')->to_string;

牵引_闪烁

my$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.