PHP 删除使用 POST 时的换行符
PHP removes line breaks when using POST
我有使用 POST 将信息发送到 PHP 脚本的表单。 PHP 读取 $content
并将其保存到 file.txt
,并使用以下代码在浏览器上显示它:
$content = $_POST['content'];
file_put_contents("file.txt", $content);
echo $content;
如果我在表格中使用换行符,则 file.txt
包含所有换行符。但是当我向浏览器回显相同的 $content
时,根本没有换行符。我的意思是在源代码中。我的目的是用另一种形式$content
<textarea>
,但即使是textarea也不显示任何换行符。
如何file_put_contents
找到换行符?
在向浏览器显示内容时使用 php 函数 nl2br()
。
<?php echo nl2br($content); ?>
nl2br — Inserts HTML line breaks before all newlines in a string
我认为换行符没有消失。它们只是在记事本或基于 Windows 的编辑器中不可见。
大多数浏览器仅使用 Unix / MacOS 换行符 (\n
),而 Windows 编辑器仅识别 Windows 换行符 (\r\n
)。
而不是
$content = $_POST['content'];
努力去做
$content = str_replace("\n", "\r\n", $_POST['content']);
更多参考:
Difference between CR LF, LF and CR line break types?
试试这个:
$content = $_POST['content'];
file_put_contents("file.txt", $content);
echo "<pre>";
echo $content;
echo "</pre>";
好的,感谢斯凯,问题解决了。我使用 javascript 生成的 <input>
标签来发送包含换行符的文本。我将其更改为 <textarea>
,现在我可以捕获所有换行符了。
我仍然不明白为什么从 <input>
...
保存到 file.txt
时会有换行符
我有使用 POST 将信息发送到 PHP 脚本的表单。 PHP 读取 $content
并将其保存到 file.txt
,并使用以下代码在浏览器上显示它:
$content = $_POST['content'];
file_put_contents("file.txt", $content);
echo $content;
如果我在表格中使用换行符,则 file.txt
包含所有换行符。但是当我向浏览器回显相同的 $content
时,根本没有换行符。我的意思是在源代码中。我的目的是用另一种形式$content
<textarea>
,但即使是textarea也不显示任何换行符。
如何file_put_contents
找到换行符?
在向浏览器显示内容时使用 php 函数 nl2br()
。
<?php echo nl2br($content); ?>
nl2br — Inserts HTML line breaks before all newlines in a string
我认为换行符没有消失。它们只是在记事本或基于 Windows 的编辑器中不可见。
大多数浏览器仅使用 Unix / MacOS 换行符 (\n
),而 Windows 编辑器仅识别 Windows 换行符 (\r\n
)。
而不是
$content = $_POST['content'];
努力去做
$content = str_replace("\n", "\r\n", $_POST['content']);
更多参考:
Difference between CR LF, LF and CR line break types?
试试这个:
$content = $_POST['content'];
file_put_contents("file.txt", $content);
echo "<pre>";
echo $content;
echo "</pre>";
好的,感谢斯凯,问题解决了。我使用 javascript 生成的 <input>
标签来发送包含换行符的文本。我将其更改为 <textarea>
,现在我可以捕获所有换行符了。
我仍然不明白为什么从 <input>
...
file.txt
时会有换行符