php - file_put_contents 只写最后一行
问题描述
我正在尝试通过 file_put_contents() 将数据库表中的一些数据写入 gfg.txt 文件。通过复选框,我选择了更多事件,然后我需要将其中的一些信息保存到 gfg.txt 中,但只有最后一个事件保存到该文件中。因此,我尝试将 gfg.txt 打印到视频中,并且我正确获取了所有事件,但是如果我从服务器打开同一个文件,则只有一条记录,或者所选的最后一个事件。
如何将我需要的所有记录打印到 gfg.txt 文件中?谢谢
所以在文件中我有:
标题:ryjss,描述:brsrt,数据:2019-07-01
但在屏幕上我有:
标题:enr g,描述:有效,数据:2019-07-04
标题:ggfef,描述:veegert,数据:2019-07-06
标题:yriey,描述:tyjdh,数据:2019-03-01
标题:ryjss,描述:brsrt,数据:2019-07-01
该值来自 esporta.html.php:
<input type="checkbox" name="esportazione[]" value="<?="TITOLO: ".$evento['titolo_evento'].", DESCRIZIONE: ".$evento['desc_evento'].", DATA: ".$evento['data_evento'];?>"/>Seleziona<br/><br/>
<input type="submit" name="btn_export" value="Esporta"/>
在下面的 export_txt.php 中,我尝试将信息保存在 txt 文件中:
<?php
if(isset($_POST["btn_export"])) {
if (!empty($_POST["esportazione"])) {
?>
<p><a href="gfg.txt">Download</a></p>
<?php
foreach ($_POST["esportazione"] as $esportazione) {
$file = 'gfg.txt';
$current= $esportazione;
file_put_contents($file, $current);
echo "<pre>";
echo htmlspecialchars(file_get_contents($file));
echo "</pre>";
}
}
}
?>
解决方案
目前,您的foreach
循环一次作用于 1 个项目,因此它将获取数据、覆盖文件然后显示内容。但是这个内容只是写的最后一行,因为你的显示在循环内。
由于您似乎只是希望将该数组中的所有值都放入文件中,因此您可以减少它以使用implode()
(使用新行作为胶水)并一次性写入所有内容,因此无需foreach
循环,只需...
$file = 'gfg.txt';
file_put_contents($file, implode(PHP_EOL, $_POST["esportazione"]));
然后检查它...
echo "<pre>";
echo htmlspecialchars(file_get_contents($file));
echo "</pre>";
推荐阅读
- c - 如何反转基于表的 CRC16?
- android - Android:带有一个编辑文本和微调器的 TextInputLayout
- php - PHP:获取数组2并将其存储到新数组
- javascript - 离线渐进式网络应用程序未打开错误消息是无法连接到站点(如本机错误弹出消息)
- ios - 如果框架不存在,Objective-c 在运行时关闭类/代码块
- vue.js - 如何在 Vue.js 中使用 vuelidate 验证 vSelect
- ruby-on-rails - 无法使用 send_data 函数下载文件
- java - 向每个方法引入新变量的通用方法
- java - 如何将轮询 api 转换为反应流
- jquery - 无法通过单击 wordpress 来切换类(下拉菜单)