im创建一个有两个文本框的网站。一个用于文件名,另一个用于内容。当您单击“提交”时,它将根据您编写的内容在特定文件夹中创建文件。这一切都很好,但是如果您写入相同的文件名和不同的内容,它将覆盖该文件。我只希望提交后关闭该文件以进行写入,因此没有人可以与其他文件混淆。这是我的php代码:
hh:mm
答案 0 :(得分:0)
添加一个条件,使用file_exists()
检查文件是否已经存在:
<?php
$filnavn = $_POST["filnavn"];
$innhold = $_POST["innhold"];
$path = dirname(__FILE__) . "/lekser/" . $filnavn . ".txt";
if ($filnavn != "" && file_exists($path))
{
$myfile = fopen($path, "w") or die("Feil! Klarer ikke å skrive filen. Prøv igjen.");
fwrite($myfile, $innhold);
fclose($myfile);
}
?>
答案 1 :(得分:0)
我不确定预期的结果是什么,所以我给出了完全不同的答案:
如果您使用fopen($path, "a")
而不是fopen($path, "w")
,则会将内容附加到现有文件中,而不是替换它。
答案 2 :(得分:0)
尝试一下::
$filnavn = $_POST["filnavn"];
$innhold = $_POST["innhold"];
$path = dirname(__FILE__) . "/lekser/" . $filnavn . ".txt";
如果文件不存在,则创建一个新文件:
if ($filnavn != "" && !file_exists($path))
{
$myfile = fopen($path, "w") or die("Feil! Klarer ikke å skrive filen. Prøv igjen.");
fwrite($myfile, $innhold);
fclose($myfile);
}
如果文件存在,则在现有文件内容的底部追加新内容:
if ($filnavn != "" && file_exists($path))
{
$myfile = fopen($path, "a") or die("Feil! Klarer ikke å skrive filen. Prøv igjen.");
fwrite($myfile, $innhold);
fclose($myfile);
}
如果不想在现有文件中进行任何更改,请创建一个新文件,并在文件名中添加数字
if ($filnavn != "" && file_exists($path))
{ // just add number with file name, for versioning
$path = dirname(__FILE__) . "/lekser/" . $filnavn . "1.txt";
$myfile = fopen($path, "w") or die("Feil! Klarer ikke å skrive filen. Prøv igjen.");
fwrite($myfile, $innhold);
fclose($myfile);
}