Hàm fwrite() trong PHP
Trần Thị Vân
- 1242
- 05/08/2025
Chức năng của Hàm fwrite() trong PHP
Hàm fwrite() trong PHP dùng để chèn nội dung vào file, lúc hàm chạy đầu tiên thì toàn bộ nội dung của file sẽ được cập nhập bằng hàm fwrite, những hàm fwrite phía sau sẽ ghi chèn ở phía sau.
Cú pháp của Hàm fwrite() trong PHP
fwrite($chế_độ_đọc_ghi_file, 'nội_dung_truyền_vào');
$chế_độ_đọc_ghi_file: Chế độ đọc ghi file (Ví dụ: fopen($filename, "w"))
nội_dung_truyền_vào: Nội dung truyền vào file.
Code ghi file của Hàm fwrite() trong PHP
<?php
$filename = "filetxt.txt"; //Đường dẫn file
$filecd = fopen($filename, "w");//Mở file và ghi
fwrite($filecd, 'fwrite vào toàn bộ file '); //Ghi nội dung vào file
fwrite($filecd, 'fwrite vào toàn bộ file '); //Ghi nội dung vào file
fclose($filecd);//Đóng file
?>
Kết quả toàn bộ file được cập nhật lại nội dung:
fwrite vào toàn bộ file fwrite vào toàn bộ file
Lưu ý khi sử dụng hàm fwrite() trong PHP
Khi dùng fwrite(), việc ghi được dữ liệu vào file không chỉ phụ thuộc vào chuỗi cần lưu. Chương trình còn phải mở file đúng chế độ, có quyền ghi phù hợp và xử lý kết quả trả về của hàm. Kiểm tra những yếu tố này ngay từ đầu giúp hạn chế tình trạng dữ liệu không được lưu như mong muốn hoặc file bị thay đổi ngoài dự kiến.
Kiểm tra quyền ghi file trước khi sử dụng fwrite()
File hoặc thư mục chứa file phải cho phép tiến trình PHP thực hiện thao tác ghi. Nếu không có quyền phù hợp, fwrite() có thể không ghi được dữ liệu dù đường dẫn và nội dung truyền vào đều chính xác.
Đặc biệt, với file mới chưa tồn tại, quyền của thư mục chứa file cũng rất quan trọng vì PHP cần tạo file trước khi ghi. Khi phát triển trên máy chủ, nên kiểm tra quyền truy cập thay vì tùy tiện cấp quyền quá rộng cho toàn bộ thư mục.
Cũng nên kiểm tra kết quả của fopen() trước khi truyền tài nguyên file cho fwrite(). Nếu mở file thất bại, chương trình cần xử lý tình huống này thay vì tiếp tục thực hiện thao tác ghi.
<?php
$file = 'data.txt';
$handle = fopen($file, 'a');
if ($handle === false) {
die('Không thể mở file để ghi.');
}
fwrite($handle, "Nội dung mới\n");
fclose($handle);
?>
Cách kiểm tra này giúp xác định sớm nguyên nhân khi file không được cập nhật, đồng thời tránh tiếp tục xử lý trên một tài nguyên không hợp lệ.
Xử lý trường hợp fwrite() ghi dữ liệu không đầy đủ
Không nên mặc định rằng một lần gọi fwrite() luôn ghi toàn bộ chuỗi được truyền vào. Giá trị trả về của hàm cho biết số byte đã được ghi. Vì vậy, khi ứng dụng cần đảm bảo toàn bộ dữ liệu được lưu, nên kiểm tra kết quả và tiếp tục ghi phần còn lại nếu cần.
<?php
function writeAll($handle, $data) {
$length = strlen($data);
$written = 0;
while ($written < $length) {
$result = fwrite($handle, substr($data, $written));
if ($result === false) {
return false;
}
$written += $result;
}
return true;
}
?>
Cách làm này đặc biệt hữu ích khi ghi lượng dữ liệu lớn hoặc khi ứng dụng yêu cầu kiểm soát chặt chẽ kết quả ghi. Với dữ liệu quan trọng, việc kiểm tra giá trị trả về giúp phát hiện lỗi thay vì âm thầm coi thao tác ghi là thành công.
Đảm bảo đóng file sau khi ghi bằng fwrite()
Sau khi hoàn tất việc ghi, nên gọi fclose() để giải phóng tài nguyên mà PHP đang sử dụng cho file. Việc đóng file cũng giúp quy trình xử lý dữ liệu rõ ràng hơn, đặc biệt khi chương trình phải làm việc với nhiều file trong cùng một request.
<?php
$handle = fopen('data.txt', 'a');
if ($handle !== false) {
fwrite($handle, "Một dòng dữ liệu mới\n");
fclose($handle);
}
?>
Không nên mở file rồi bỏ qua việc đóng tài nguyên sau khi hoàn thành. Với các đoạn mã được thực thi thường xuyên, thói quen này giúp hạn chế việc giữ tài nguyên không cần thiết và làm cho code dễ kiểm soát hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm fwrite() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *