2017-08-15 63 views
0

我不是很習慣PHP,所以我會很感激一個簡單的解決方案(如果可能的話)。如何用PHP新行替換URL中字符串的字符?

我有一個看起來像一個網址:

https://www.example.com/index.php?text=hello%0A%0Ahow%20are%20you 

我想發送的文字在一封電子郵件,基本的mail()函數。 當我發送電子郵件時發生的情況是,所有新行(%0A)都不會轉換爲\ r \ n。我聽說$ _GET []會自動解碼網址,因此我嘗試使用urlencode()函數再次對其進行編碼,然後使用str_replace將所有「%0A」替換爲「\ r \ n」。

見我到目前爲止的代碼:

$txt = urlencode($_GET['text']); 
$txt = str_replace("%0A", "\r\n", $txt); 
// no new line breaks 

遺憾的是,至今仍然在郵件(純文本)不換行。

你能幫我解決嗎?

谷歌迄今爲止無法幫助我。

謝謝!

+1

嘗試該功能nl2br() 來源:https://www.w3schools.com/php/func_string_nl2br.asp –

+0

爲什麼不[urldecode(字符串)字符串](HTTP:/ /php.net/manual/en/function.urldecode.php)?順便說一句,我對「'_GET []'自動解碼url」有疑問。你有檢查嗎? – Odepax

+1

爲什麼'urlencode'字符上的'str_replace'?未編碼的URL中的新行不會作爲新行加載。 – chris85

回答

1

試試這種方式的代碼。

<?php 
$text= "hello%0A%0Ahow%20are%20you"; 
$txt = urldecode($text); 
echo nl2br($txt); 

Click here for demo

+1

但是爲什麼要這樣做呢? – chris85

+0

你是什麼意思? –

+1

'$ _GET'裏面沒有'%0A'。 'urldecode'之後'%0A'不會是那個。無論如何,這個問題似乎在後面的過程中。 – chris85