我必须将字符串传递给表单。 我想以下列方式使用$ _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写入文件。
答案 0 :(得分:5)
建议:您可能应该考虑将其置于隐藏字段
回答:但是如果您要将其作为GET参数投入使用,那么您需要对该字符串进行urlencode:
<form action="this_page.php?string=<?php echo urlencode($string); ?>" method="post" name="name">
那样 - 任何非字母数字字符都是url安全的(想想如果$ string包含?或#或an =会发生什么。)
PHP在将它们加载到$ _GET数组时自动解码GET参数 - 因此应该保留换行符。