2013-05-31 67 views
0

我有類似的東西。如何將一個換行符添加到使用PHP的rawurlencode編碼的mailto鏈接中

<a href='mailto:[email protected]?subject=<?php print rawurlencode('This is the subject.');?>&body=<?php print rawurlencode('Line 1 of body. Line 2 of body.');?>'>Email</a> 

我想在郵件的正文中放一個換行符。我通過谷歌發現,你可以把%0D%0A放入mailto來做一個換行符,但問題是rawurlencode只會對它進行編碼。我可以將什麼放入rawurlencode中,以便讓消息中顯示換行符。

回答

0

\n - 這就是所謂的換行 - 特殊字符

+0

@ cody-grey,這是我,誰試圖指出'\ r \ n'是Windows特定的。再次嘗試,希望這次成功:) – ElmoVanKielmo

1

您可以在字符串添加\r\n字符,如果你使用雙引號,這將避免您所描述的雙重編碼問題。

<?php 
echo rawurlencode("Line One.\r\nLine Two."); 
/* Line%20One.%0D%0ALine%20Two. */ 

http_build_query函數可能也很方便。

<?php 
$params = array(
    'subject' => 'Subject', 
    'body'  => "Line One.\r\nLine Two." 
); 

echo http_build_query($params); 
/* subject=Subject&body=Line+One.%0D%0ALine+Two. */ 
+1

\ r和/或\ n的組合似乎沒有工作。他們只是在郵件正文中出現\ r和\ n – Mike

+0

這不適用於PHP 5.5.26 –

相關問題