从 php 中的文本输入获取 CRLF

Getting CRLF from text input in php

我对网络开发比较陌生。我在 html.

中有一个简单的文本输入和提交按钮
<div>
<input type="text" name="sender" id="sender" class="form-control" placeholder="" />
<input type="submit" class="btn-u btn-u-small" name="send" value="Send email" />
</div>

我在 php 和 echo 中获取文本输入的值。

<?php
if(isset($_POST["send"]))
{
    echo $_POST["sender"] . " \r\nThis was a test";
}
?>

现在我在文本输入中输入 \r\nUser input。我希望 echo 命令看起来像:

echo "\r\rUser input." . " \r\nThis was a test."

显示时应该如下所示:

User input. This was a test.

相反,第一个 \r\n 按原样打印,只有第二个 \r\n 被解释为 CRLF.

\r\nUser input. This was a test.

我试过 '\r\n' "\r\n" \r\n 但似乎没有用。

注意:我不想在 html 中使用实际换行符,我知道在 html 中换行符是 <br />。我想在 php 字符串中换行。

浏览器将 filter/encode/sanitize 您在文本字段中输入的所有内容,因此您必须想办法让浏览器为您生成 CRLF。

一种方法是:

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