thể trùng lặp:
PHP: Is there a command that can delete the contents of a file without opening it?Dọn sạch một tập tin với php
Làm thế nào để bạn làm sạch một file .txt trên một máy chủ với một lệnh php?
thể trùng lặp:
PHP: Is there a command that can delete the contents of a file without opening it?Dọn sạch một tập tin với php
Làm thế nào để bạn làm sạch một file .txt trên một máy chủ với một lệnh php?
Dưới đây là một cách để chỉ đổ nếu nó đã tồn tại và điều đó không có vấn đề của việc sử dụng file_exists
, như các tập tin có thể chấm dứt tồn tại giữa cuộc gọi file_exists
và cuộc gọi fopen
.
$f = @fopen("filename.txt", "r+");
if ($f !== false) {
ftruncate($f, 0);
fclose($f);
}
Đầu tiên hãy xóa nó bằng cách sử dụng unlink()
và sau đó chỉ cần tạo tệp trống mới có cùng tên.
$fh = fopen('filename.txt','w'); // Open and truncate the file
fclose($fh);
Hoặc trong một dòng và không có lưu trữ (tạm thời) tập tin xử lý:
fclose(fopen('filename.txt','w'));
Như những người khác đã nói, điều này tạo ra các tập tin trong trường hợp nó không tồn tại.
fclose (fopen ('filename.txt', 'w')); – ekerner
Viết một chuỗi rỗng như nội dung của filename.txt
:
file_put_contents('filename.txt', '');
Như đã nêu trên tài liệu php, điều này giống như fopen, fwrite và fclose. Vì fwrite không được yêu cầu, điều này có thể chậm hơn một chút so với fopen/fclose. – riha
Điều cần biết, tôi đã upvoted câu trả lời của bạn –
Chỉ cần mở nó để viết:
if (file_exists($path)) { // Make sure we don't create the file
$fp = fopen($path, 'w'); // Sets the file size to zero bytes
fclose($fp);
}
Với ftruncate()
: http://php.net/ftruncate
Đối với 'ftruncate()', bạn phải 'fopen()' trước tiên. Nếu bạn 'fopen()' để viết, tập tin đã bị cắt ngắn thành 0 byte. –
@ Ferdinand phụ thuộc vào cách bạn mở nó. – Artefacto
@Artefacto nói chung - vâng. trong trường hợp cụ thể này - nó đã bị cắt ngắn rồi. Bình luận của bạn không có ý nghĩa và chỉ gây phiền nhiễu nitpicking. –
bạn có thể sử dụng đoạn mã sau
'
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "";
fwrite($fh, $stringData);
fclose($fh);
' Nó sẽ chỉ ghi đè nội dung tệp của bạn vào các ô trống
'hủy liên kết ($ tệp); $ fp = fopen ($ file, 'W'); fclose ($ fp); ' –
bạn không có phương pháp nào khỏi đầu của bạn? –
@Shakti tại sao hủy liên kết? –