我创建了一个脚本,用于将表单提交保存为使用用户的名字作为文件名的.txt文件。为了简单起见,我在HTML中创建了一个测试文件来显示我想要实现的功能。如何使用php增加从输入数据创建的文件名?
到目前为止脚本我有在PHP处理形式是这样的
$data= "";
foreach ($_POST as $key => $value) {
$data.= str_replace("_"," ",$key)."\n\n ". $value."\n\n\n\n"; preg_replace("/[^ 0-9a-zA-Z]/", "_", $value);
}
$fileName= fopen("Submissions/".$_POST['First_Name'],'w');
fwrite($fileName, $data);
fclose($fileName);
?>
我想要做的就是添加一些代码,使之在我的情况下,增加文件名,以便从具有相同名字的人那里得到多份提交,不会过多写入。不要说我从别人提交名为鲍勃,和另外两个鲍勃恰好填写问卷,我希望它保存为
Bob.txt Bob_02.txt Bob_03.txt
这意味着我需要的东西,就可以忽略“_02”末,以查明“鲍勃”开头,因此不会去
Bob.txt Bob_02.txt Bob_02_02.txt
我想出了这个,试图做到这一点,但得到了同时在“file_exists” opperators
if (file_exists($fileName)){
$num="00";
$fileNameUpd= count(substr.$_POST['First_Name'].$num++);
fopen("Submissions/".$fileNameUpd,'w');
fwrite($fileNameUpd, $data);
fclose($fileNameUpd);
}
else if (!file_exists($fileName)){
fwrite($fileName, $data);
fclose($fileName);
};
我补充它在路上的错误是这样的
$data= "";
foreach ($_POST as $key => $value) {
$data.= str_replace("_"," ",$key)."\n\n ". $value."\n\n\n\n"; preg_replace("/[^ 0-9a-zA-Z]/", "_", $value);
}
$fileName= fopen("Submissions/".$_POST['First_Name'],'w');
if (file_exists($fileName)){
$num="00";
$fileNameUpd= count(substr.$_POST['First_Name'].$num++);
fopen("Submissions/".$fileNameUpd,'w');
fwrite($fileNameUpd, $data);
fclose($fileNameUpd);
}
else if (!file_exists($fileName)){
fwrite($fileName, $data);
fclose($fileName);
};
?>
我如何能得到这个实现我需要做什么?
2015-11-17
Optiq
+0
文件名必须是连续的吗?如果没有,您可以使用tempnam并将第一个名称设置为前缀。 http://php.net/manual/en/function.tempnam.php –
+0
此外,这听起来像你会遇到更多的问题,因为名字不是一个唯一的标识符,但在这种情况下可能无关紧要 –