【问题标题】:Newline not working in php换行符在 php 中不起作用
【发布时间】:2017-12-24 05:56:01
【问题描述】:

这是代码。我不知道我在哪里犯了错误。我也尝试使用单引号。 我试过了,但所有项目都排成一行。

 $output_line=$item."\n";
 fwrite($myfile,$output_line);

【问题讨论】:

  • 对于一个有效的 txt 文件,如果它是一个浏览器,它会期望 HTML。根据操作系统,您可能需要“\r\n”
  • 使用 PHP_EOL 而不是 "\n" 作为测试呢?这样它应该是系统本身使用的任何回报?
  • 有多少项? $项目是什么?是字符串中的一项还是数组中的多项?
  • Andreas , 数组有 7 个项目
  • @Tayyab 是 $item 一个数组吗?你确定吗?您在下面的 cmets 中说过 $item 是字符串的答案是正确的。如果 $item 是一个数组,那么这些答案应该不起作用

标签: php file text newline file-handling


【解决方案1】:

使用PHP_EOL 而不是\n

 $output_line=$item . PHP_EOL ;

【讨论】:

  • OP 说 $item 是一个数组,这应该创建一个数组到字符串的转换错误
【解决方案2】:

使用产生\r\n\nPHP_EOL

$data = 'some data' . PHP_EOL . 'this should be on new line';
$fp = fopen('my_file', 'a');
fwrite($fp, $data);

// 文件输出

some data
this should be on new line

【讨论】:

【解决方案3】:

您需要使用 implode 在每个项目之间添加“文本”。
Implode 采用一个数组并在每个项目之间添加一个字符串并将其全部设为字符串。

$output_line=implode(" PHP_EOL", $item);
fwrite($myfile,$output_line);

这将使得:

Item1 PHP_EOL
Item2 PHP_EOL
Item3 PHP_EOL

【讨论】:

    【解决方案4】:

    换行符表示在不同的操作系统上可能不同。在 PHP 中有一个名为 PHP_EOL 的预定义常量,它为当前平台返回正确的“行尾”符号。自 PHP 5.0.2 起可用。

    因此,您的代码应如下所示:

    $output_line=$item.PHP_EOL;
    fwrite($myfile,$output_line);
    

    【讨论】:

    • OP 说 $item 是一个数组,这应该创建一个数组到字符串的转换错误
    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 2010-11-16
    • 2014-01-21
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2011-06-19
    • 2018-12-26
    相关资源
    最近更新 更多