繁体   English   中英

变量作为 mailto 链接中的地址

[英]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&commat;hi&period;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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM