2013-12-18 38 views
0

我剛剛創建了一個允許創建個人聖誕電子賀卡的php應用程序。用戶可以輸入一個自定義文本,並在他檢查了文本並點擊了綠色按鈕之後,爲他生成一個帶有get參數的鏈接。此鏈接可用於發送電子郵件並將其發送給他的朋友和家人。如何從獲取參數的鏈接中刪除空格?

我的問題是獲取參數(=?botschaft)中的字符不會出現在一行中,也不會一個接一個地出現。每當文本中出現換行符時,鏈接中也會出現一個看起來很醜陋的中斷。這是一個可行的鏈接的例子:

http://www.christian-kress.net/koelsche_weihnachtskarte/index.php?botschaft=This is an e-card I generated with my application.<br /> 
<br /> 
My problem is that the chars in the link do not appear one after another, but<br /> 
there are spaces when there is a new line. 

我爲了確保該BR-標籤是在鏈接,當用戶點擊該換行符會顯示使用nl2br功能鏈接並查找聖誕消息。但現在我想刪除空格。它應該都出現在一個單一的嚴格線上!

任何人都可以幫忙嗎?有沒有人知道一個合適的(字符串)函數來實現呢?

所以只是要清楚,上面的鏈接的期望輸出會是這樣的:

http://www.christian-kress.net/koelsche_weihnachtskarte/index.php?botschaft=This_is_an 
e-card_I_generated_with_my_application.<br/><br/>My_problem_is_that_the_chars_in_the_link_do_not_appear_one_after_another,_but_there_are_spaces_when_there_is_a_new_line. 

如何添加下劃線簽收,我怎麼能確保當用戶進入鏈接和消息正在構建並根據參數的內容顯示下劃線不會出現?

感謝您的幫助提前!

基督教

回答

0

正確的方法是使用urlencode功能編碼URL。

你也只是以下劃線代替空格:

echo str_replace(' ', '_',"http://www.christian-kress.net/koelsche_weihnachtskarte/index.php?botschaft=This is an e-card I generated with my application.<br />"); 

打印:

http://www.christian-kress.net/koelsche_weihnachtskarte/index.php?botschaft=This_is_an_e-card_I_generated_with_my_application

+1

你不應該在整個url上使用'urlencode',因爲它編碼所有特殊字符,比如'[:/?]'等等,如果它包含一個'http://'或類似的東西,就會導致鏈接無用。你必須使用'rawurlencode'才能在''' – gwillie

+0

@gwillie yup'之後得到符號'?'和'urlencode',你是對的。我想我沒注意。 –

0

只是翹曲urlencode();鏈接的輸出。它轉換所有討厭的字符,如空格。