php - 确定循环中为空的行文件
问题描述
名为“file_changes.dat”的文件,它完全是空的,没有任何信息,并在服务器中创建,我使用这个脚本来简单地显示这个文件中的数据,它是下一个脚本:
$fil_dat_changes=file("file_changes.dat");
$f_changes=fopen("file_changes.dat","w");
for($fh=0;$fh<sizeof($fil_dat_changes);$fh++) {
if(trim($fil_dat_changes[$fh])=="")
{
print "NO DATA";
fputs($f_changes,"".date("dmYHis").""."\n");
}
else
{
print "YES EXISTS LINE";
}
}
fclose($f_changes);
而且我不知道为什么如果文件是空的,当我输入时:
if(trim($fil_dat_changes[0])=="")
不要显示任何内容,也不要使用 fputs,我认为结果必须显示 NO DATA 并插入信息,但不要插入任何内容
我不明白问题出在哪里,因为我认为如果不存在任何信息或数据行,则必须在文件中最后插入该行
这是我的问题,为什么不插入数据,提前感谢所有社区,问候
解决方案
您可以使用 . 检查文件是否包含数据filesize()
。但是,当您还打开文件进行写入时
$f_changes=fopen("file_changes.dat","w");
这将始终清空文件并将其设置为写入。这将清除文件中已有的所有数据。
相反,如果您检查文件是否为空,然后用于file_put_contents()
写入文件,则仅当文件为空时才会执行此操作...
if ( 0 == filesize( "file_changes.dat" ) ) {
file_put_contents("file_changes.dat", date("dmYHis").PHP_EOL);
}
else {
echo "YES EXISTS LINE";
}
推荐阅读
- javascript - 显示 API 结果的最简单方法
- google-apps-script - 我的 Google App 脚本如何仍在运行我取出的代码
- swiftui - 带白色背景的概述按钮
- javascript - expressjs 和 nunjucks 的模板渲染错误
- javascript - 我有这个功能的问题“未捕获的 ReferenceError:同步未在 HTMLInputElement.onkeyup 中定义”
- c++ - 从向量中删除 unique_ptr 的问题
- mysql - discord.js/node.js 让代码等到 sql 查询返回结果
- arrays - 遍历章节名称在数组中的章节
- java - 从具有 3000000 行的表的 Java 中读取行
- typescript - 我可以定义一个模型,但需要一些字段的变化吗?