0

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

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

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

    file_put_contents($filename, $string); 

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

但我想要这样:

  • 用户1
  • 用户2
  • 用户3
  • 用户4

没有“●”

4

4 回答 4

4

您正在使用 Linux 换行符,您需要使用\r\nfor 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)));
于 2012-11-19T09:41:47.063 回答
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);
于 2012-11-19T09:42:30.833 回答
0

试试这个代码

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

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

}
file_put_contents($filename, $string); 
于 2012-11-19T09:42:55.170 回答
0

您可以简单地使用 PHP_EOL 常量

file_put_contents($filename, implode(PHP_EOL,array_values($arr)));
于 2012-11-19T09:44:12.343 回答