嗨,大家好,我有一個變量$Date
,每天都會自動更新。每次有新條目時,我想創建一個新的文本文件。所以基本上每一天。 我希望使用fopen
每次用戶提交一個值時創建一個新的文本文件,但僅限於那一天。如果用戶創建了另一個帳戶,第二天,這將是與日期爲名稱的新文本文件...將文本文件命名爲變量
我只有三個變量,$date
,$Name
和$number
是有可能創建如下?
$textmember = "$date.txt"
謝謝!
嗨,大家好,我有一個變量$Date
,每天都會自動更新。每次有新條目時,我想創建一個新的文本文件。所以基本上每一天。 我希望使用fopen
每次用戶提交一個值時創建一個新的文本文件,但僅限於那一天。如果用戶創建了另一個帳戶,第二天,這將是與日期爲名稱的新文本文件...將文本文件命名爲變量
我只有三個變量,$date
,$Name
和$number
是有可能創建如下?
$textmember = "$date.txt"
謝謝!
是的,您可以輕鬆地創建一個新的文本文件,每一天。
$filename = "$date.txt";
if (! file_exists($filename)) {
$fp = fopen($filename,'w');
//write stuff to file
fclose($fp);
}
如果你將數據附加到文件,你甚至都不需要做file_exists()
檢查,你可以使用的fopen()
的「a」選項:
$filename = "$date.txt";
$fp = fopen($filename,'a');
//write stuff and close
在這的情況下,如果文件不存在,文件將被創建,如果它確實存在,那麼您寫入的數據將被添加到最後。
要做到這一點,你可以創建一個especified日常格式的文件,並檢查文件是否犯規已經存在,如果它不然後創建它。我會使用格式$ username- $ date,因此用戶名ryudice的文件看起來像「ryudice-22-2-2009.txt」,那麼您可以檢查每次用戶提交值時文件是否存在,如果它不存在然後創建它,檢查文件是否已經存在,你可以使用file_exists函數。
這應該是那麼容易,因爲
file_put_contents($filename, $text, FILE_APPEND);
其中$文件名應爲$ name和$日期和$組合文本要寫入的數據。如果您需要每個名稱和日期的文件,則只需將$ data和$ name結合起來,例如
$filename = sprintf('%s-%s.txt', $date, $name);
所以,用$日期爲2009-12-30和$ name是戈登,你會得到2009-12-30-Gordon.txt
。如果該文件不存在並且將$ text寫入該文件,該文件將被創建。如果它已經存在,則$ text將被附加到其中,例如,
$filename = sprintf('%s-%s.txt', date('Y-m-d'), 'Gordon'); // create filename
file_put_contents($filename, 'foo', FILE_APPEND); // create file and write to it
// later that day
file_put_contents($filename, 'bar', FILE_APPEND); // append to existing file
您必須確保您創建文件的目錄是可寫的。
檢查PHP manual作進一步參考。
如果你使用PHP 5 + ...
$filename = 'data/textmembers/date/' . $Date . '.txt';
file_put_contents($filename, $Name, FILE_APPEND);
file_put_contents($filename, $Number, FILE_APPEND);
如果你的腳本位於/var/www/html/my_script.php那麼該文件將被保存在/無功/網絡/ html/data/textmembers/date/$ Date.txt。您需要確保目錄(/ path/to/date)對PHP運行的用戶具有寫入權限。
謝謝你們,這是日期格式,我不得不將其更改爲12-30-2009而不是12/30/2009 – Ryan 2009-12-30 22:37:34
對不起,我不能讓你的第二個建議,它是我的代碼,我認爲它只是語法錯誤,但它不會創建一個新文件,它只是說「沒有目錄找到「 $ filename =」data/textmembers/date/$ Date.txt「; $ fp = fopen($ filename,'a'); fwrite($ fp,$ Name); fwrite($ fp,$ Number); fclose($ fp); – Ryan 2009-12-30 07:51:07
聽起來像您要寫入的目錄不存在。確保路徑正確。如果您使用相對路徑,它將與正在運行的腳本相對。 – zombat 2009-12-30 08:37:50
確保使用正確的日期格式 - 如果在'mm/dd/yyyy'或'hh:mm:ss'的日期分別有'/'或':'這樣的特殊字符,可能會產生問題。使用'yyyy-mm-dd-hh-mm-ss'或'yyyymmdd-hhmmss'或'yyyymmdd'等日期格式,然後附加'$ name'和'$ number'或其他任何內容。 PHP手冊應該給你一個指定日期格式的簡單方法。 – namespaceform 2009-12-30 08:42:17