我有一个多层次的哈希,在其中我有一个用户的化身的URL。
我试图用"Jane Doe映像“创建一个单元格,但是当代码运行时,URL将被更改。当我把它插入到Embperl模板中时,
https://foo.com/useravatar?size=small&id=11111转成
https://foo.com/useravatar%3Fsize%3Dsmall%26id%3D11111如您所见,特殊字符将被编码,因此找不到图像。你怎么才能避开这一切?
use strict;
use warnings;
use Embperl qw( );
our $issue = {
avatar => {
url => 'https://foo.com/useravatar?size=small&id=11111',
},
};
my $template = <<'__EOI__';
[+ $issue->{avatar}{url} +]
<img src="[+ $issue->{avatar}{url} +]">
__EOI__
Embperl::Execute({
input => \$template,
package => __PACKAGE__,
});这就产生了:
https://foo.com/useravatar?size=small&id=11111
<img src="https://foo.com/useravatar%3Fsize%3Dsmall%26id%3D11111">当将URL插入到src属性之外时,它将正确转义。但是当它插入到src属性中时,它就会损坏。
发布于 2015-02-25 19:10:21
你注意到的逃跑是为了处理
<img src="https://foo.com/useravatar?size=small&id=[+ $avatar_id +]">您可以更改转义模式。使用
<img src="[+ do { local $escmode = 1; $issue->{avatar}{url} } +]">生产
<img src="https://foo.com/useravatar?size=small&id=11111">在URL上获取图像
https://foo.com/useravatar?size=small&id=11111测试:
use strict;
use warnings;
use Embperl qw( );
our $issue = {
avatar => {
url => 'https://foo.com/useravatar?size=small&id=11111',
},
};
my $template = <<'__EOI__';
<img src="[+ $issue->{avatar}{url} +]">
<img src="[+ do { local $escmode = 1; $issue->{avatar}{url} } +]">
__EOI__
Embperl::Execute({
input => \$template,
package => __PACKAGE__,
});https://stackoverflow.com/questions/28725617
复制相似问题