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


Php newline in Linux (ubuntu) show ^M

我正在Ubuntu服务器上运行一个PHP脚本。我正在用PHP读取一个配置文件,做一些preg_replace并写回该文件。用CCD_ 2和CCD_。

但当我这样做的时候,我会在每行的末尾看到^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 );
?>