![](/img/trans.png)
[英]Using Chrome's “Copy email address” on mailto link returns encoded useless text instead of a correct email address
[英]Variables as address in a mailto link
我想使用我的数据库中的 email 值,但是在打印时它不使用 email 值或之后的任何值。 我是否错过了某个地方的 ' 或 "?它在代码中的其他地方工作,但有了这个链接它不会'。
echo '<div align="center"><a href="mailto:"' . $row["email"]. '"&subject=Subject&body=Body"><img src="email.png"</a></div>';
结果链接:mailto:
提前致谢!
您关闭了 href,这就是它以 mailto 结尾的原因:
它应该是
echo '<div align="center"><a href="mailto:'. $row["email"] .'&subject=Subject&body=Body"><img src="email.png"></a></div>';
你的报价是错位的。
用这个:
// Greatly hinder spammers from ripping the email from your site.
// Converts "hi@hi.com" to "hi@hi.com" but still works 100% as good for end-user.
$escapedEmail = htmlentities($row['email'], ENT_HTML5);
echo <<<HTML
<div align="center"><a href="mailto:{$escapedEmail}&subject=Subject&body=Body"><img src="email.png" /></a></div>
HTML;
Heredocs是迄今为止处理这个问题的最佳方法,因为您不必担心嵌套的单引号/双引号、大量的“.”等,这些都是丑陋的 AF,并且往往会产生很多意外错误,因为你的代码只是咬你。
另一种方法是使用printf()
,但它的性能不高,而且阅读起来稍微困难一些:
printf('<div align="center"><a href="mailto:%s&subject=Subject&body=Body"><img src="email.png" /></a></div>', $escapedEmail);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.