You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP写入.txt文档时如何实现强制换行?

解决PHP写入TXT文件时每条记录自动换行的问题

你的代码问题出在哪

你现在的代码里有两个明显错误:

  1. $_POST['\r\n' . 'textdata']完全写错了——你把换行符加到了POST参数的键名里,这会导致你根本拿不到用户提交的textdata值,反而在找一个叫\r\ntextdata的不存在参数。
  2. PHP代码没必要嵌套在<script>标签里,这是给JavaScript用的,PHP是服务器端脚本,直接放在HTML里就行。

修正后的完整代码

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form method="POST">
    <input type="text" name="textdata" id="textdata">
    <input type="submit" name="Submit">
</form>

<?php
if(isset($_POST['textdata'])) {
    // 先拿到用户提交的内容
    $userInput = $_POST['textdata'];
    // 在内容末尾加上换行符,用PHP_EOL自动适配系统
    $dataToWrite = $userInput . PHP_EOL;
    
    // 打开文件并追加写入
    $fileHandle = fopen('data.txt', 'a');
    if ($fileHandle) {
        fwrite($fileHandle, $dataToWrite);
        fclose($fileHandle);
    }
}
?>
</body>
</html>

关键细节说明

  • 换行符的正确用法:别硬写\r\n或\n,用PHP_EOL就行——它会自动根据服务器的操作系统(Windows/Linux/macOS)生成对应的换行格式,兼容性拉满。
  • 追加换行的时机:先获取用户输入的内容,再把换行符拼在内容后面,这样每条新记录都会从新一行开始。
  • 额外的小优化:我加了文件打开的判断,如果data.txt打不开(比如权限不够),也不会报错崩掉。你还可以给用户输入加个trim(),去掉首尾空格,避免写入空行:$userInput = trim($_POST['textdata']);

内容的提问来源于stack exchange,提问作者Nam Tab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:40:40