我想将每个HTML命令行保存在一个文件中。我的用户数量很少,从1到几百,所以我打算在名为1.php,2.php,3.php等的文件中创建get参数的副本。
function Message($T) {
print "$T<br/>";
}
function CheckAndDelete($filename, $Delete)
{
$res = file_exists($filename);
if ($res) {
Message("File \"" . $filename . "\" exist");
if ($Delete) {
Message("Deletes file \"" . $filename . "\"");
unlink($filename) or die("Cannot delete file");
}
}
else
Message("File \"" . $filename . "\" does not exist");
} // CheckAndDelete()
function Check($Prompt, $fname, $fullfname, $Delete)
{
Message($Prompt);
CheckAndDelete($fname, $Delete);
CheckAndDelete($fullfname, $Delete);
} // Check()
$T = strftime("%T");
$Root = $_SERVER['DOCUMENT_ROOT'] . "/";
Message("Root: " . $Root);
$Owner = $_GET[P3];
$fname = $Owner . '.php';
$fullfname = $Root . $fname;
Check("I---------------", $fname, $fullfname, TRUE);
Check("II--------------", $fname, $fullfname, TRUE);
$fil = fopen($fname, "w");
fwrite($fil, $Owner);
$S = $T . " " . $Owner;
fwrite($fil, $S);
fclose($fil);
Message($S . " Written!!");
Check("III-------------", $fname, $fullfname, FALSE);
如果文件不存在,则此方法有效,该文件已创建并包含我希望它们包含的内容。但是,如果确实存在文件,则程序的行为就好像一切正常,但是文件的内容不会更改。我在互联网上阅读了一些有关完整文件名的信息,并尝试对其进行测试,如下所示:
答案 0 :(得分:0)
您正在以w
模式打开文件:
$fil = fopen($fname, "w");
此模式状态的fopen()
的PHP文档(强调我的意思):
'w'仅开放用于写作; 将文件指针放在文件开头,然后将文件截断为零长度。如果该文件不存在,请尝试创建它。
您正在覆盖文件,而不是附加到文件。请使用适当的模式进行附加;例如:fopen($fname, 'a');
fopen()
文档中有完整的模式列表。
或者,您可以使用带有FILE_APPEND
标志的更高级别的功能file_put_contents()
;例如:
$fil = file_put_contents($fname, $S, FILE_APPEND);
希望这会有所帮助:)