[英]Write text file php
我正在使用PHP。
我想寫一個php頁面來從另一個頁面獲取參數並寫入文件文本。 和:
如果已經有文件文本,則寫入新行
每天創建一個文件文本
例:
register.php
<body>
<form action='process.php' method='GET'>
Name: <input type='text' name='name'/>
<br/>
Age: <input type='text' name='age'/>
<br/>
<input type='submit' value='SUBMIT'/>
</form>
</body>
process.php
$name = $_GET['name'];
$age = $_GET['age'];
$file_handle = fopen("testFile.txt", "w");
$file_contents = "name:" . $name . "age:" . $age;
fwrite($file_handle, $file_contents);
fclose($file_handle);
print "file created and written to";
我怎樣才能做到這一點?
使用file_get_contents()和file_put_contents()函數。
例:
$file = 'output.txt';
$buffer = 'my new line here';
if (file_exists($file)) {
$buffer = file_get_contents($file) . "\n" . $buffer;
}
$success = file_put_contents($file, $buffer);
如果要為每天創建新文件,可以使用當前日期date('dm-Y').".txt"
創建txt文件date('dm-Y').".txt"
。 這樣您就可以輕松地按日期識別文件。
嘗試下面的代碼,我已經在代碼中進行了一些更改並測試它。
<?php
$dateFile = date('d-m-Y').".txt";
$dataString = "name:" . $name . "age:" . $age."\n";
$fWrite = fopen($dateFile,"a");
$wrote = fwrite($fWrite, $dataString);
fclose($fWrite);
print "file created and written to";
?>
如果文件已經創建,因此您可以通過"\\n"
在新行中存儲新記錄,\\ n必須處於“”quatoed。
來自fopen docs :
寫:
w僅供寫作; 將文件指針放在文件的開頭,並將文件截斷為零長度。 如果該文件不存在,請嘗試創建它。
附加:
a僅供寫作; 將文件指針放在文件的末尾。 如果該文件不存在,請嘗試創建它。
所以你要追加,而不是寫。
如果該文件不存在,它將嘗試創建它。 因此,只需為該文件指定一個隨日更改的唯一名稱。 有關示例,請參閱日期文檔。
$filename = date("m.d.y"); // 03.10.01
<?php
$File = "YourFile.txt";
$Handle = fopen($File, 'w');
$Data = "Jane Doe\n".PHP_EOL;;
fwrite($Handle, $Data);
$Data = "Bilbo Jones\n";
fwrite($Handle, $Data);
print "Data Written";
fclose($Handle);
?>
以上是在php中執行此操作的簡單示例
我沒有編寫很多php,但是如果在fopen()中用“w +”替換“w”,它將打開文件,如果文件已經存在則將指針放在它的末尾,制作任何fwrite( )調用附加到文件。
$file_handle = fopen("testFile.txt", "w+");
http://php.net/manual/en/function.fopen.php
編輯:看到sachleen的答案,是的,您可以將日期(下至日)與文件名組合。 因此,在新的一天,將為該日創建一個新文件,如果該文件存在於該日,則將附加到該文件。
謝謝。 我用這個http://www.redips.net/php/write-to-log-file/解決了這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.