我已经阅读了线程Writing a new line to file in PHP,并将其确切的代码粘贴到了自己的netbeans IDE中,但是没有用。粘贴的代码(有一些小的更改)为:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
$i = 0;
$file = fopen('ids.txt', 'w');
$gemList=array(1,2,3,4,5);
foreach ($gemList as $gem)
{
fwrite($file, $gem."\n");
$i++;
}
fclose($file);
?>
</body>
</html>
我还尝试使用其他代码在文件的新行中写入。我的代码是这样的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
$fh = fopen("testfile.txt", 'w') or die("Failed to create file");
$text = <<<_END
Line 1
Line 2
Line 3
_END;
fwrite($fh, $text) or die("Could not write to file");
fclose($fh);
echo "File 'testfile.txt' written successfully";
?>
</body>
</html>
但是文本文件中的结果是
12345
我期望的是
1
2
3
4
5
非常感谢您的帮助。另外,我的Netbeans版本是8.2,运行的操作系统是Windows 10。
答案 0 :(得分:4)
使用您当前的代码,检查页面来源,它会为您提供正确的结果。
但是请记住,您正在html页面上运行它,因此,如果要换行,请使用<br>
标签。
foreach ($gemList as $gem)
{
fwrite($file, $gem."<br>");
$i++;
}
fclose($file);
HTML不会考虑换行\n
,除非您专门设置CSS属性white-space:pre;
答案 1 :(得分:0)
如果您正在网页上显示,Ibu的答案是正确的。
对于您的fwrite()
呼叫,请确保您使用的文本查看器将\n
理解为EOL字符。换句话说,如果您使用的是Windows,并且只能在Windows上使用生成的文件,则\n\r
(换行符和回车符)就是您要使用的EOL字符< / p>
或者,保持原样,并使用支持“ Unix样式行结尾”的文本编辑器-Notepad ++可以...
答案 2 :(得分:0)
如果您正在浏览器中查看文件的内容(例如,在PHP中回显),则需要使用nl2br()
PHP函数将换行符转换为html的<br/>
:
<div>
<?= nl2br(file_get_contents("testfile.txt")); ?>
</div>
或者将文件内容包含在CSS空格属性设置为“ pre”的情况下:
<div style="white-space: pre">
<?= file_get_contents("testfile.txt"); ?>
</div>