提问人:Lori 提问时间:10/16/2014 更新时间:10/16/2014 访问量:119
创建生成唯一 txt 文件的变量,然后在不创建其他文本文件的情况下进行追加
Create variable that generates unique txt file then appends without creating another text file
问:
我有一个表单,在提交时创建一个唯一的 .txt 文件名并将表单数据发布到该文件中。这很有效。问题是在它创建文件后,我需要一种方法来附加它而不创建另一个文本文件。因为它是一个表单,所以当它提交时,每次调用提交时都会重新运行代码,我不确定如何处理它。
表格如下:
<body>
<form action="write_to_txt_file2.php" method="POST">
<input name="field1" type="text" />
<input name="field2" type="text" />
<input type="submit" name="submit" value="Save Data">
</form>
这是php: 我不必使用微时间作为唯一变量名称,所以如果有更好的方法,我愿意改变它。
<?php
$myDate = round(10*microtime(TRUE));
$filename = "tmp/".$myDate.".txt";
if(isset($_POST['field1']) && isset($_POST['field2'])) {
$data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
$ret = file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
echo "$ret bytes written to file";
}
}
else {
die('no post data to process');
}
?>
答:
0赞
Kevin
10/16/2014
#1
或者,您也可以利用会话,如果未使用相同的生成器设置文件名,则设置文件名,以便下次提交后可以再次使用它。
简单示例:
session_start();
if(!isset($_SESSION['file'])) {
$_SESSION['file'] = round(10*microtime(TRUE)); // set a filename on initial load
}
if(isset($_POST['submit'])) { // if submitted
$myDate = $_SESSION['file'];
$filename = "tmp/".$myDate.".txt";
if(isset($_POST['field1'], $_POST['field2'])) {
$data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
$ret = file_put_contents($filename, $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
echo "$ret bytes written to file";
}
}
else {
die('no post data to process');
}
}
if(isset($_POST['create'])) {
$_SESSION['file'] = round(10*microtime(TRUE)); // creates another filename
}
?>
<form action="" method="POST">
<input name="field1" type="text" />
<input name="field2" type="text" />
<input type="submit" name="submit" value="Save Data" />
<input type="submit" name="create" value="Create New" />
</form>
评论
0赞
Lori
10/16/2014
这真是太好了。我想我可以用它。我可能会从另一个页面创建 txt 文件,然后单击以获取表单,并且在实际表单上只有一个按钮。非常感谢您提供这样的开端!
0赞
Lori
10/16/2014
你不知道这为我节省了多少时间。我非常感谢。在接下来的几天里,我可能需要更多的指导,因为PHP不是我的母语,所以希望我能得到更多很好的解决方案。
0赞
Kevin
10/16/2014
@Lori确定没有问题,如果时间允许,我会回复
评论