使用$ _GET字符串传递换行符

时间:2012-01-19 22:34:07

标签: php html

我必须将字符串传递给表单。 我想以下列方式使用$ _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,这不是我想要的结果。我只想在php字符串中使用内部\n

请你解释一下为什么会出现这种情况,而不是抱怨它不是传递字符串的最佳方法(我想它不是,但今天我遇到了问题,我想通过传递字符串来管理它方式)?

Ps:我必须使用\n而不是html <br />,因为我必须让php写入文件。

1 个答案:

答案 0 :(得分:5)

建议:您可能应该考虑将其置于隐藏字段

回答:但是如果您要将其作为GET参数投入使用,那么您需要对该字符串进行urlencode:

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

那样 - 任何非字母数字字符都是url安全的(想想如果$ string包含?或#或an =会发生什么。)

PHP在将它们加载到$ _GET数组时自动解码GET参数 - 因此应该保留换行符。