编码' \ r \ n'在HTML文本输入中

时间:2017-04-07 20:51:32

标签: php html browser encoding newline

以下PHP代码打印从HTML文本输入中获取的字符串。

<div class="form-group">
<label for="sender">Your text</label>
<input type="text" name="sender" id="sender" class="form-control" placeholder="example" />
</div>

<?php
print $_POST["sender"]." \r\nSecond senetence.";
?>

请注意连接字符串中的第二个\r\n

HTML form

当我在HTML文本输入中输入:\r\nFirst sentence.时,输出为:

\r\nFirst sentence. Second sentence.

为什么第一个\r\n从字面上理解,我该如何解决?

我已经尝试'\r\n' "\r\n" \\r\\n但似乎没有用。此外,因为我想要PHP字符串中的\r\n<br />, &#13 and &#10无法工作。

2 个答案:

答案 0 :(得分:1)

<input type="*">不接受换行。

改为使用<textarea rows="1"></textarea>

请注意,如果要显示换行符,则必须在<pre>或其他<textarea>中显示输出。其他可能性是使用PHP nl2br()

答案 1 :(得分:1)

如果您无法更改代码,则会更复杂,但仍有可能。

浏览器将对您在文本字段中输入的所有内容进行过滤/编码/清理,因此您必须在该步骤后执行某些操作。

我的建议是:

  • 使用Firefox
  • 安装扩展程序TamperData
  • 使用它来修改您发送的文字,例如在开头插入%0D%0A;这是\r\n
  • 的网址编码版本

有点麻烦,但可行。