我正在尝试向此电子邮件脚本添加几个变量。电子邮件本身每次发送,都会收到。但是,电子邮件包含变量本身而不包含信息。 如何获取变量来打印它们代表的数据? (我知道变量存在。)
<?//Send Welcome Email
$to = '//Email Removed for security';
$subject = 'Application Received';
$msg = '
We have received your application. You can login at
anytime by visiting:<br />
<a href=\"$siteURL/return-Login.php" title="$siteName - Return Login\">$siteURL/return-Login.php</a><br /><br />
';
sendEmail($to,$subject,$msg,$siteName,$siteEmail,$siteURL,$account,$ip);
?>
答案 0 :(得分:2)
当你在字符串中使用单引号时,php不会读取变量值,它只是假定它是文本,如果你将字符串放在双引号中,变量将被解释为变量。
更清楚
$my_var = "some text";
$my_body = "this is $my_var output";
echo $my_body;
将输出
this is some text output
BUT
$my_var = "some text";
$my_body = 'this is $my_var output';
echo $my_body;
将输出
this is $my_var output
如果您因任何原因想要使用单引号,则必须链接此类
字符串$my_var = "some text";
$my_body = 'this is '.$my_var.' output';
echo $my_body;
在这种情况下,您的输出将再次
this is some text output
更具体地说,你的$ msg看起来应该是
$msg = 'We have received your application. You can login at
anytime by visiting:<br />
<a href=\"'.$siteURL.'/return-Login.php" title="'.$siteName.' - Return Login\">'.$siteURL.'/return-Login.php</a><br /><br />
';
答案 1 :(得分:0)
我看到一个无法正确显示的变量。也许这将适用于您打印错误的每个变量。
查看电子邮件正文字符串。您使用单引号来生成字符串,并且$ siteURL变量位于某处。除非字符串是用双引号声明的,否则直接包含在字符串中的变量将不会解析。
以下两种方法可以解决您的问题:
$msg = 'The site URL is' . $siteURL . '. You can see I interrupted the single quotes to add that site uri.';
$msg = "The site URL is $siteURL. Putting the variable in curly brackets also works: {$siteURL}!";
正如您所看到的,变量在任何一种情况下都会被解析,但不会在字符串中的单引号中解析。如果要使用单引号,则必须使用句点(。)中断字符串以将它们连接在一起。 :)
答案 2 :(得分:0)
您的问题是因为您需要使用两种不同类型的引号才能正确呈现HTML和变量。
您需要嵌套报价。
尝试以下方法:
$msg = 'We have received your application. You can login at anytime by visiting:<br /><a href="'.$siteURL.'/return-Login.php" title="'.$siteName.' - Return Login">'.$siteURL.'/return-Login.php</a><br /><br />
第一个单引号表示字符串的开头。在任何你看到单引号的地方,你都在启动并停止字符串并将PHP插入其中。
你看到双引号的地方,这些被忽略并被视为字符串的一部分。