首页 > 后端开发 > php教程 > 为什么在 PHP 中写入文件时会出现尾随换行符?

为什么在 PHP 中写入文件时会出现尾随换行符?

Susan Sarandon
发布: 2024-11-11 12:49:02
原创
896 人浏览过

Why Am I Getting Trailing Newlines When Writing to a File in PHP?

PHP 中的换行问题:克服尾随换行符

在 PHP 中使用 fwrite() 和 'w' 模式写入文件时,意外的换行符附加到输出中是很常见的。所提供的代码就是这种情况,其中“n”旨在创建换行符,但却显示为字符串。

n 困境

背后的原因这种特殊的行为在于所使用的转义序列。默认情况下,单引号字符串将“n”视为文字反斜杠后跟字母“n”,而不是换行符。要纠正这个问题,需要使用双引号字符串并使用“n”正确转义换行符。

Windows 和 Unix 行结尾

需要考虑的另一个方面是行结束符。不同的操作系统使用不同的行结尾约定:

  • Windows:“rn”(回车符后跟换行符)
  • 基于 Unix 的系统(包括 Linux 和 macOS):“n " (仅限换行符)

为了确保正确的行结束处理,建议以二进制模式打开文件,这样可以在不进行任何行结束转换的情况下写入原始数据。这涉及使用 'wb' 作为 fopen() 的第二个参数。

更新的代码:

通过实施这些修复,下面修改后的代码成功写入每个 gem ID在新行上没有任何无关字符:

$i = 0;
$file = fopen('ids.txt', 'wb');
foreach ($gemList as $gem)
{
    fwrite($file, $gem->getAttribute('id') . "\n");
    $gemIDs[$i] = $gem->getAttribute('id');
    $i++;
}
fclose($file);
登录后复制

以上是为什么在 PHP 中写入文件时会出现尾随换行符?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板