2014-01-12 67 views
0

我使用PHPMailer的註冊後發送電子郵件,但我似乎不能把一個變量插入傳遞變量到PHPMailer的身體

$htmlBody = '<html><body><a href = "http://www.mywebsite.com/confirm_registration.php?passkey={$com_code}">Confirm</a></body></html>'; 

其中$ com_code是附加到收到一個鏈接一個獨特的密鑰用戶在他們的電子郵件中。問題是$ com_code顯示爲$ com_code而不是實際的字符串。任何想法都會有所幫助。

回答

3

使用雙引號,而不是單引號的字符串和逃生裏面的雙引號,因爲這樣的:

$htmlBody = "<html><body><a href=\"http://www.mywebsite.com/confirm_registration.php?passkey={$com_code}\">Confirm</a></body></html>"; 

另外,使用連接運算符來代替,因爲這樣的:

$htmlBody = '<html><body><a href="http://www.mywebsite.com/confirm_registration.php?passkey=' . $com_code . '">Confirm</a></body></html>'; 

PHP只搜索包含雙引號的字符串內的變量。

+0

工作。真棒!謝謝,虛幻的手指! – Mike

+0

這是很好的知道。這將在未來爲我節省很多麻煩。 – Mike

0

該問題與PHPMailer無關。問題是你試圖錯誤地在字符串中插入一個變量。 請記住,與雙引號和heredoc語法不同,特殊字符的變量和轉義序列在單引號字符串中出現時不會展開。 您可以在您的情況使用兩種方式進行了許多:

1)

$htmlBody = "<html><body><a href = 'http://www.mywebsite.com/confirm_registration.php?passkey={$com_code}'>Confirm</a></body></html>"; 

2)

$htmlBody = '<html><body><a href = "http://www.mywebsite.com/confirm_registration.php?passkey='.$com_code.'">Confirm</a></body></html>'; 

請注意引號是如何使用!