首页 > 解决方案 > 确定循环中为空的行文件

问题描述

名为“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 并插入信息,但不要插入任何内容

我不明白问题出在哪里,因为我认为如果不存在任何信息或数据行,则必须在文件中最后插入该行

这是我的问题,为什么不插入数据,提前感谢所有社区,问候

标签: phpfor-loop

解决方案


您可以使用 . 检查文件是否包含数据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"; 
}

推荐阅读