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

il_*_*lco 2 html php

我必须将一个字符串传递给一个表单.我想以下列方式使用$ _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>
Run Code Online (Sandbox Code Playgroud)

请注意\n字符串中的内容.当我得到$_GET("string")(或$_REQUEST("string")时,会发生以下情况:php解析器将\n作为字符串获取.所以他把它放入我编码的字符串中:\\\n这不是我想要的结果.我只想\n在php字符串中使用内部.

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

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

Hor*_*Kol 5

建议:您可能应该考虑将其置于一个隐藏的领域

:但是如果您要将其作为GET参数付诸实施,那么您需要对该字符串进行urlencode:

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

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

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