Php Linux 中的换行符 (ubuntu) 显示 ^M

Php newline in Linux (ubuntu) show ^M

我是 运行 Ubuntu 服务器上的 PHP 脚本。我正在使用 PHP 读取配置文件,执行一些 preg_replaces 并写回该文件。使用 file_get_contentsfile_put_contents.

但是当我这样做时,我在每行的末尾看到 ^M

为什么它在那里,我如何写入文件而不让这些字符出现?还是忽略它们?

这是我的小脚本,它将 Windows 行分隔符替换为 UNIX 样式。

<?php
  $in_fp  = fopen( "input.txt", "r" ) or die;
  $out_fp = fopen( "output.txt", "w" ) or die;

  while ( !feof( $in_fp ) ) {
    $buf = fread( $in_fp, 5000 );
    $buf = str_replace( "\r\n", "\n", $buf );
    fwrite( $out_fp, $buf );
  }

  fclose( $out_fp );
  fclose( $in_fp );
?>