php问题将数组保存到文本文件

时间:2012-11-19 09:38:19

标签: php

嘿伙计们试图将值保存到文本文件中。我尝试了不同的方法,当我打开文本文件时,所有的值都写在一行没有空格。我想在这里写出每个值,这是我到目前为止所做的:

    $filename = 'admin_liste.txt';
    $string   = '';

    foreach($arr as $key => $val) {
    $string .= "$val\n";
    }

    file_put_contents($filename, $string); 

这会在文本文件中写下这样的所有内容: user1user2user3user4

但我希望这样:

  • 用户1
  • 用户2
  • 用户3
  • USER4

没有“●”

4 个答案:

答案 0 :(得分:5)

您使用的是Linux换行符,需要使用\r\n for windows。

所以你的代码看起来像这样:

$filename = 'admin_liste.txt';
$string   = '';

foreach($arr as $key => $val) {
    $string .= "$val\r\n";
}

file_put_contents($filename, $string);

但是,PHP有一个内置常量,它将依赖于您正在运行的操作系统来处理这个问题。所以,不要使用上面的内容,你可以简单地使用以下内容(如果您的网站总是在Windows上,但没有任何意义,但要点知道):

file_put_contents($filename, implode(PHP_EOL,array_values($arr)));

答案 1 :(得分:3)

由于您正在使用Windows,因此应使用'\ r \ n'。我建议您使用内置常量PHP_EOL,因为它会根据您当前运行的平台呈现换行符。

修改

将PHP_EOL添加到您的代码段并且似乎有效。

$filename = 'admin_liste.txt';
$string   = '';
$arr = array('user1', 'user2', 'user3');

foreach($arr as $key => $val) {

    $string .= "$val" . PHP_EOL;

}

file_put_contents($filename, $string);

答案 2 :(得分:0)

试试此代码

 $filename = 'admin_liste.txt';
$string   = '';

foreach($arr as $key => $val) {
$string .= "$val\n\r";

}
file_put_contents($filename, $string); 

答案 3 :(得分:0)

您可以简单地使用PHP_EOL常量

file_put_contents($filename, implode(PHP_EOL,array_values($arr)));