我运行一个PHP程序来创建许多文件。该程序使用fopen(),如下所示:
$outputfile = fopen($outfilename, "w") or die("Unable to open file $outfilename");
fwrite($outputfile,$txtstr);
fclose($outputfile);'
我的文件列表有重复的条目。当我运行程序时,我希望它覆盖重复的条目。它做得恰到好处,但有一个不良的副作用。重复的条目显示在目录中。我运行PHP时可以看到重复的条目
scandir($mydirectory);
并回复条目。
使用FTP查看目录,我没有看到任何重复的名称,但我知道它们在那里,因为即使我删除了所有“可见”文件,我也无法删除目录本身(“目录不是空的“)。
我尝试在fopen()上使用“x”并且有效(防止重复条目)但不是覆盖文件,而是保留第一次出现的数据,这不是我想要的。
我试过把
if (file_exists($outfilename)) {
unlink($outfilename);
}
在使用fopen()之前希望这会先删除文件,但仍会导致目录中出现重复的条目。
目录已损坏,所以我无法摆脱它。目前我只是重命名它,所以我可以使用干净的目录运行另一个测试。但我创造了很多混乱。我真正需要的是一种覆盖文件内容而不在目录中创建重复条目的解决方案。