Hàm fopen() trong PHP

Hàm fopen() trong PHP
Hàm fopen() trong PHP

Chức năng của Hàm fopen() trong PHP

Hàm fopen() trong PHP dùng để cài đặt chế độ mở file để đọc hoặc ghi nội dung vào file.

Cú pháp của Hàm fopen() trong PHP

$chế_độ_đọc_ghi_file = fopen($đường_dẫn_file, "chế_độ");

$đường_dẫn_file: Đường dẫn đến file cần đọc hoặc ghi (Ví dụ: filetxt.txt)

chế_độ: Chế độ đọc ghi file.

$chế_độ_đọc_ghi_file: Trả kết quả về biến chứa chế độ đọc ghi của một file.

Code áp dụng Hàm fopen() trong PHP

Hàm fopen() trong PHP để đọc file

<?php 
$filename = "filetxt.txt";
$filecd = fopen($filename, "r");//mở file ở chế độ đọc
$noidung = fread($filecd, filesize($filename));//truyền số byte của file và tiến hành đọc file
echo "<pre>$noidung</pre>";//in nội dung của file ra màn hình
fclose($filecd);//đóng file
?>

Hàm fopen() trong PHP để ghi nội dung vào file

<?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
?>

Các cách mở file của Hàm fopen() trong PHP

Chế độ Mô tả
r Mở file ở chế độ read-only. Nó đặt con trỏ tập tin vào đầu tập tin.
r+ Mở file ở chế độ read-write. Nó đặt con trỏ tập tin vào đầu tập tin.
w Mở file ở chế độ write-only. Nó đặt con trỏ tập tin vào đầu tập tin và cắt bớt tập tin về độ dài bằng không. Nếu không tìm thấy tệp, nó sẽ tạo một tệp mới.
w+ Mở file ở chế độ read-write. Nó đặt con trỏ tập tin vào đầu tập tin và cắt bớt tập tin về độ dài bằng không. Nếu không tìm thấy tệp, nó sẽ tạo một tệp mới.
a Mở file ở chế độ write-only. Nó đặt con trỏ tập tin vào cuối tập tin. Nếu không tìm thấy tệp, nó sẽ tạo một tệp mới.
a+ Mở file ở chế độ read-write. Nó đặt con trỏ tập tin vào cuối tập tin. Nếu không tìm thấy tệp, nó sẽ tạo một tệp mới.
x Tạo và mở file ở chế độ write-only. Nó đặt con trỏ tập tin vào đầu tập tin. Nếu tìm thấy tập tin, hàm fopen() trả về FALSE.
x+ Nó giống như x nhưng nó tạo và mở tệp ở chế độ read-write.
c Mở file ở chế độ write-only. Nếu tập tin không tồn tại, nó sẽ được tạo. Nếu nó tồn tại, nó không bị cắt ngắn (như trái ngược với 'w'), cũng không gọi hàm này thất bại (như trường hợp với 'x'). Con trỏ tập tin được đặt ở đầu tập tin.
c+ Nó giống như c nhưng nó mở tập tin ở chế độ read-write.

Lưu ý khi sử dụng hàm fopen() trong PHP

Hàm fopen() cho phép PHP mở một file hoặc tài nguyên để thực hiện các thao tác tiếp theo. Tuy nhiên, việc mở file không phải lúc nào cũng thành công và mỗi chế độ truy cập lại có cách xử lý dữ liệu khác nhau. Kiểm tra kết quả mở file, lựa chọn đúng chế độ và đóng file sau khi dùng là ba điểm cần chú ý để hạn chế lỗi trong quá trình xử lý.

Kiểm tra kết quả mở file trước khi thao tác

Không nên mặc định rằng file luôn mở thành công. Đường dẫn sai, file không tồn tại hoặc PHP không có quyền truy cập có thể khiến fopen() thất bại. Khi đó, biến nhận kết quả có thể không chứa một tài nguyên file hợp lệ.

Cách an toàn là kiểm tra kết quả ngay sau khi gọi hàm trước khi sử dụng các hàm đọc hoặc ghi dữ liệu. Điều này giúp chương trình xử lý lỗi rõ ràng thay vì phát sinh lỗi ở bước tiếp theo.

<?php
$file = fopen("data.txt", "r");

if ($file === false) {
    echo "Không thể mở file.";
    exit;
}

// Tiếp tục xử lý file tại đây
fclose($file);
?>

Chọn đúng chế độ mở để tránh mất dữ liệu

Tham số thứ hai của fopen() quyết định PHP sẽ truy cập file theo cách nào. Đây là phần cần đặc biệt cẩn thận khi chương trình có thao tác ghi dữ liệu.

Chẳng hạn, chế độ w sẽ làm rỗng nội dung file khi mở thành công trước khi ghi dữ liệu mới. Nếu mục đích chỉ là bổ sung nội dung vào cuối file, nên cân nhắc chế độ a để tránh vô tình xóa dữ liệu đã có.

<?php
$file = fopen("log.txt", "a");

if ($file !== false) {
    fwrite($file, "Ghi thêm một dòng mới\n");
    fclose($file);
}
?>

Với những file chứa dữ liệu quan trọng, nên xác định rõ nhu cầu là đọc, ghi mới hay ghi bổ sung trước khi chọn chế độ mở. Một lựa chọn không phù hợp có thể làm thay đổi dữ liệu ngay từ thời điểm file được mở.

Đóng file sau khi hoàn tất xử lý

Sau khi đọc hoặc ghi xong, nên đóng file bằng fclose(). Việc này giải phóng tài nguyên mà PHP đang sử dụng và giúp kết thúc quá trình làm việc với file một cách rõ ràng.

Đặc biệt với chương trình xử lý nhiều file hoặc chạy trong thời gian dài, việc đóng các file không còn sử dụng giúp hạn chế tình trạng tiêu tốn tài nguyên không cần thiết.

<?php
$file = fopen("data.txt", "r");

if ($file !== false) {
    $content = fread($file, filesize("data.txt"));
    fclose($file);

    echo $content;
}
?>

Nên đặt thao tác fclose() sau khi hoàn tất công việc với file, kể cả trong những đoạn mã đơn giản. Đây là thói quen giúp code xử lý file ổn định và dễ kiểm soát hơn khi mở rộng chương trình.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm fopen() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm fopen() trong PHP
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !