我知道如何使用smarty mailto函数来创建带编码的mailto
锚链接。但我想知道是否有可能将html图像标签[<img>
]插入此函数的输出中。
我试过了:
[SMARTY]
{$text = '<img src="/images/qr_code.jpg" alt="member sign up qr code">'}
{mailto address="test@example.com" encode="hex" text={$text}}
[HTML RESULT]
<a href="mailto:%74%65%73%74@%65%78%61%6d%70%6c%65.%63%6f%6d">
<img src="/images/qr_code.jpg"
alt="member sign up qr code" >
</a>
我更喜欢这个输出:
<a href="mailto:%74%65%73%74@%65%78%61%6d%70%6c%65.%63%6f%6d">
<img src="/images/qr_code.jpg"
alt="member sign up qr code">
</a>
答案 0 :(得分:1)
从阅读此代码https://bitbucket.org/pferor/dbless/src/04b228943e39/dbless/lib/smarty/plugins/function.mailto.php看来,当您使用“十六进制”编码时,它不仅会对地址进行编码,还会对文本进行编码(第147行):
$text_encode = '';
for ($x=0; $x < strlen($text); $x++) {
$text_encode .= '&#x' . bin2hex($text[$x]).';';
}
不确定这是不是问题。
如果您不介意编辑Smarty源,您可以更改此行(153):
return '<a href="'.$mailto.$address_encode.'" '.$extra.'>'.$text_encode.'</a>';
对此:
return '<a href="'.$mailto.$address_encode.'" '.$extra.'>'.$text.'</a>';
让它发挥作用。
如果您尝试“无”编码,它会显示图像吗?