【问题标题】:Make PHP variable have html link as its value使 PHP 变量具有 html 链接作为其值
【发布时间】:2023-03-09 11:54:01
【问题描述】:

我正在尝试将 html 链接分配为 php 变量的值。像这样,(我知道这不起作用):

$mlink = <a href = "download.php">Download Link</a>;

我正在尝试发送一封带有链接作为电子邮件消息的电子邮件。我正在使用 mail() 这样做。这是我发送邮件的脚本代码。这就是我想使用以 html 链接作为其值的 $mlink 变量的地方。

<?php
$to = $_POST['email1'];
$subject = "Test mail";
$message = $mlink;
$from = "somewhere@somewhere.com";
$headers = "From:" . $from;

if( mail($to, $subject, $message, $headers) )
{
    echo ("<p>Mail Sent!</p>");
}
else
{
    echo ("<p>Mail could not be sent!</p>");
}
?>

我在另一个调用这个脚本的脚本中分配 $mlink 的值。我也可以发布该脚本。我只是不确定这是否有必要。

我似乎无法弄清楚如何让它发挥作用。我尝试使用 echo,但是当我在变量赋值语句中这样做时,它给了我一个错误。我尝试了其他一些方法,但它们都给我一个错误或不需要的输出。我不知道如何进行这项工作:(

非常感谢任何帮助。提前感谢您的任何启发!

【问题讨论】:

  • 试试$mlink = "&lt;a href = 'download.php'&gt;Download Link&lt;/a&gt;";
  • 或 $mlink = "下载链接";
  • 与其给男人一条鱼吃,不如教他如何捕鱼。您正在寻找“字符串”,您可以在这里了解它们:php.net/manual/en/language.types.string.php
  • 感谢大家的精彩回复!我刚结束工作会议。我将很快测试我的项目,看看我是否正确实施了解决方案。我还有很多东西要学。我非常感谢您的帮助。一旦我在我们的服务器上测试了这个,我会尽快回复。我一定会研究所有发布的链接,因为我希望能够自己钓到鱼! :)
  • 我使用 xampp 并在没有邮件服务器的 localhost 上进行了测试。它将“电子邮件”作为文本文件发送到 xampp 目录中的 mailoutput 文件夹,因此它将所有内容都解释为严格的文本。我认为这与我为什么会困惑自己有关,当然还有我的菜鸟!

标签: php html email hyperlink


【解决方案1】:

注意

正如 cmets 在另一个答案中所指出的,我提供了一些附加信息,OP 可以考虑这样做,并提供给 search the Internet (Google link example) 以实现这一目标。

如何使用 HTML 和纯文本发送多部分电子邮件:

  • 诀窍在于标题信息。您需要创建两份电子邮件副本,一份是纯文本,另一份是 HTML 格式。

编辑(仅 HTML 格式的工作示例)

为了从网站 (WWW) 下载链接,这是一个 http 调用,因此需要首先分配服务器变量。

<?php
$to = $_POST['email1'];
$subject = "Test mail";
$server = "http://www.example.com";
$mlink = "download.php";

$message = "

<html>
<head>
<title></title>
</head>
<body>

<a href=\"$server/$mlink\">Download Link</a>

</body>
</html>

";

$from = "somewhere@somewhere.com";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From:" . $from;

if( mail($to, $subject, $message, $headers) )
{
    echo ("<p>Mail Sent!</p>");
}
else
{
    echo ("<p>Mail could not be sent!</p>");
}
?>

原答案

这是一个示例(不用于发送电子邮件,仅用于网站):

<?php

$mlink = "download.php";

echo "<a href='$mlink'>Download Link</a>";

echo "<br>";

echo "<a href='$mlink'>$mlink</a>"; // displays file name

?>

【讨论】:

    【解决方案2】:

    要发送 HTML 邮件,必须设置 Content-type 标头 Content-type:text/html 。 这样,您的代码将被解释为 html 代码而不是纯文本:

     <?php
    
     $mlink = "download.php";
    
     $to = $_POST['email1'];
     $subject = "Test mail";
     $message = "<a href=" . $mlink . ">Download Link</a>";
     $from = "somewhere@somewhere.com";
    
     // To send HTML mail, the Content-type header must be set
     $headers = "MIME-Version: 1.0" . "\r\n";
     $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
     $headers .= "From:" . $from;
    
     if( mail($to, $subject, $message, $headers) )
     {
         echo ("<p>Mail Sent!</p>");
     }
     else 
     {
         echo ("<p>Mail could not be sent!</p>");
     } 
     ?>
    

    【讨论】:

    • 他应该使用一个 MIME 电子邮件类并发送一个包含 HTML 文本的邮件。没有什么比纯 HTML 电子邮件更糟糕的了……
    • 他对字符串概念缺乏理解是最大的问题,但这是一个有效的观点。
    • 他说他尝试了很多解决方案,可能是这个原因,无论如何这个答案涵盖了两个问题,链接和内容类型
    • @FaceOfJock 无论是 HTML 格式还是纯文本格式,电子邮件中都需要包含 http。 “电子邮件”不知道文件来自哪里或驻留在哪里,因此需要定义一个服务器,即:http://www.example.com
    猜你喜欢
    • 2013-11-30
    • 2012-10-17
    • 2017-10-25
    • 2017-09-03
    • 1970-01-01
    • 2018-11-04
    • 2013-08-11
    • 2019-03-08
    • 2013-05-15
    相关资源
    最近更新 更多