2012-04-12 88 views
-1

我想在php中爲電子郵件正文分配一個變量,但不起作用。電子郵件正文中的PHP變量

$refer=$_POST['refer']; 
send_mail( '[email protected]', 
        $_POST['email'], 
        'Invitation from ' .$name, 
        'Hi ".$refer."\n\n join me at auto-sal.es and get 1 month free membership'); 

enter image description here

我使用雙引號代替單引號,但什麼也沒有發生任何提示試過嗎?

+0

謝謝大家,真的很幫助 – 2012-04-12 00:23:50

回答

4

試試這個:

"Hi \"$refer\"\n\n join me at auto-sal.es and get 1 month free membership"); 

你封閉在單引號的字符串。單引號與dobule引號的工作方式不同。如果你把"或者一個變量放在單引號內,他們將被從字面上解釋,這就是發生在你身上的事情。

你也應該看看,指出official documentation

不像雙引號和定界符語法,變量和轉義特殊字符序列不會被擴大,當他們出現在單引號的字符串。

2

雙引號實際上應該解決問題。就像這樣:

"Hi $refer,\n\n join me at auto-sal.es and get 1 month free membership"); 
3

需要是:

'Hi '.$refer.'\n\n 
2
'Hi '.$refer.'\n\n join me at auto-sal.es and get 1 month free membership') 
3

正確的字符串連接是:

"Hi ".$refer."\\n\\n join me at auto-sal.es and get 1 month free membership" 
2

你嘗試在代碼中這樣做呢?

'.$refer.' 
1
'Hi' . $refer . "\n\n" . ' join me at auto-sal.es and get 1 month free membership.' 
1

具體來說,您的外單引號意味着從其他單引號內他們一切的除了將被解釋爲普通的字符,所以雙引號你身邊。$指,沿。$參考。本身,就像它們一樣通過。以上所有答案都以不同的方式解決了問題,但基本上它們都確保您的$ refer變量被解釋爲插入到字符串中的變量,而不是一個字旁邊的美元符號。任何答案都能滿足你的目標。