2012-01-19 52 views
2

我必須將字符串傳遞給表單。 我想在下面的方式來使用的$ _GET和$ _POST混合:

<?php $string="bla bla bla".$some_other_string."bla bla".$some_other_string2."\n"; ?> 

<form action="this_page.php?string=<?php echo $string?>" method="post" name="name"> 

</form> 

請注意字符串中的\n。 當我得到$_GET("string")(或$_REQUEST("string")時,發生以下情況:php解析器將\ n作爲字符串。所以他把它寫入字符串,因爲我編碼:\\\n,這不是我想要的結果。我只需要一個內部的\n在一個PHP字符串。

請你解釋一下爲什麼會發生這種情況,而不是抱怨它不是傳遞字符串的最佳方式(我想這不是,但是今天我遇到了一個問題,我想通過傳遞字符串來管理它這條路)?

Ps:我必須使用\n而不是html <br />,因爲我必須讓php寫入文件。

+0

我真的不明白問題所在,但試着使用'echo urlencode($ string)',它應該修復所有的問題。 – Vyktor

+0

這個問題基本上是我想在一個文件中編寫一個字符串,我想用新行來格式化它,並且我想在動作url中使用$ _GET來傳遞它。出於某種原因,/ n以字符/ n結尾,而不是新行。 –

回答

5

諮詢:你或許應該考慮把這個變成一個隱藏字段

:但是,如果你打算把它付諸行動,作爲GET參數,那麼你就需要來urlencode字符串:

<form action="this_page.php?string=<?php echo urlencode($string); ?>" method="post" name="name"> 

這樣 - 任何非字母數字字符將URL安全的(想想如果$字符串包含一個可能發生的事情或#或=?)。

PHP在將參數加載到$ _GET數組時將自動解碼GET參數 - 因此您的換行符應該在該點保留。

+0

urlencode函數起作用;很好,我現在知道要這樣做。 –