我必须将字符串传递给表单。 我想通过以下方式混合使用 $_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 写入文件。
最佳答案
建议:您可能应该考虑将其放入隐藏字段
回答:但是如果你打算把它作为GET参数付诸行动,那么你需要对字符串进行urlencode:
<form action="this_page.php?string=<?php echo urlencode($string); ?>" method="post" name="name">
这样 - 任何非字母数字字符都将是 url 安全的(想想如果 $string 包含一个 ? 或一个 # 或一个 = 会发生什么)。
PHP 在将 GET 参数加载到 $_GET 数组时会自动对其进行解码 - 因此此时应保留换行符。
关于php - 使用 $_GET 字符串传递换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934378/