如何在PHP中将一个字符串写入文本文件?

15

如何在 PHP 中将字符串写入文本文件?

我想要像这样写入字符串:

        1,hello,world!
        2,welcome
然后把这两行放到文件中。

我只想以列表样式输出结果。 - enjoylife
1
什么是“list”?HTML列表吗?你必须在表述中更加确定。没有人能读懂你的想法。如果你想向输出添加<li>标签-只需添加它即可。 - Your Common Sense
为什么你想要用这些行来存储数字?为什么不只存储行呢? - Your Common Sense
你是要逐行添加还是一次性全部添加? - Your Common Sense
2个回答

28

写入txt文件:

<?php
$file = 'file.txt';
$data = 'this is your string to write';
file_put_contents($file, $data);
?>

要在页面上某个位置输出该文件的内容(请记住,页面必须具有 .php 扩展名才能使 PHP 生效):

<?php
// place this piece of code wherever you want the file contents to appear
readfile('file.txt');
?>

编辑:

回答你在评论中提出的另一个问题:

当将数据保存到文件时,原始代码是可以的,只需使用它即可。 不同的代码出现在从文件中输出内容时,因此现在它会像这样显示:

<?php
$contents = file_get_contents('file.txt');
$contents = explode("\n", $contents);
foreach($contents as $line){
   $firstComma = (strpos($line, ","))+1;
   $newLine = substr($line, $firstComma);
   echo $newLine."\n"; 
}
?>

就这样试试吧。我这里没有我的服务器,所以无法测试,但我相信我没有犯任何错误。


1
我认为使用readfile比include更安全。以防万一。 - Your Common Sense
但如果我想像上面那样写字符串,然后以列表形式输出,我该怎么做? - enjoylife
通常不需要使用循环来进行此类输出。 - Your Common Sense
1
为什么不使用fgetcsv()函数,而是在循环中进行字符串操作来分隔“\n”?因为楼主存储数据的格式只是一个csv文件:$fileHandle = fopen('file.txt', 'r'); while($row = fgetcsv($fileHandle)) { echo $row[1].PHP_EOL; } (当然还要加入错误处理)。 - Oliver O'Neill

1

您可以使用file_put_contents将字符串写入文件。不确定您所说的输出到HTML是什么意思。
您只想要输出吗?


这并没有提供问题的答案。如果您想对作者进行批评或请求澄清,请在他们的帖子下留言。 - Mysterion
@Mysterion 鉴于 OP 的问题很简单,我个人认为这个答案确实回答了问题,因为它确定了“file_put_contents”作为写入文件的一种方法。诚然,这不是一个非常详细的答案,但它足以在 OP 无法进一步扩展的情况下提供足够的信息。 - Phill Healey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接