我是初学PHP和编程的新手,所以原谅我对这一点的无知。我试图重命名我用日期时间戳创建的文本文件,似乎无法正确。我在有人提交数据之后将信息写入文本文件,这有效,但我需要使每个文本文件都是唯一的,所以我需要一个独特的命名约定。我甚至尝试使用条目的第一个名称,但我也无法使用它。这是我到目前为止所做的:
<?php
$FirstName = $_POST["fname"].PHP_EOL;
$LastName = $_POST["lname"].PHP_EOL;
$Address = $_POST["address"].PHP_EOL;
$City = $_POST["city"].PHP_EOL;
$State = $_POST["st"].PHP_EOL;
$Zip = $_POST["zip"].PHP_EOL;
$Tel = $_POST["tel"].PHP_EOL;
$AddressFile = "Address_Entries.txt";
$ourFileHandle = fopen($AddressFile, "a") or die("can't open file");
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";
fwrite($ourFileHandle, $FirstName);
fwrite($ourFileHandle, $LastName);
fwrite($ourFileHandle, $Address);
fwrite($ourFileHandle, $City);
fwrite($ourFileHandle, $State);
fwrite($ourFileHandle, $Zip);
fwrite($ourFileHandle, $Tel);
fclose($ourFileHandle);
echo "<p>File has been writtten to successfully!</p>";
rename("C:/xampp/security/htdocs/testes/Address_Entries.txt", $FirstName);
?>
感谢任何帮助。谢谢!
答案 0 :(得分:0)
如果您需要使用唯一ID来命名文件,请尝试uniqid()
答案 1 :(得分:0)
在Windows中,您必须使用正确的路径:
rename("C:\\xampp\\security\\htdocs\\testes\\Address_Entries.txt", "C:\\xampp\\security\\htdocs\\testes\\$FirstName.txt");
答案 2 :(得分:0)
这将使用时间戳重命名该文件。但是一个独特的命名惯例,这很有可能是独一无二的,但并不是唯一的。如果有人要在同一时间发帖...使用相同的名字......你将有重复的文件。
现在这是一个很大的机会吗?否。
<?php
$file = '/tmp/this-is-temp-file.txt';
$firstName = 'BeepBeep';
$timestamp = time();
rename($file, '/path/to/new/file/'.$firstName.'-'.$timestamp.'.txt');
?>
可能尝试合并uniqid()函数。我不认为它是唯一的,因为它使用time()(我认为)......但最好用一个独特的计数器填充它(比如数据库中的ID)
这假定: a)您可以访问FULL PATH b)PHP可以访问该文件!您可能能够写入文件,但可能没有足够的权限来移动,删除,重命名,编辑..