Bài 16: Các Hàm Xử Lý File Trong PHP

Vấn đề xử lý file trong PHP rất quan trọng trong trường hợp các bạn muốn làm một số chức năng như cache hay log file,…Bài viết hôm nay mình sẽ giới thiệu với mọi người danh sách các hàm xử lý file trong PHP.

Xem Thêm:

1. Mở file

Để mở file trong PHP chúng ta dùng hàm fopen với cú pháp:

fopen(command, mode)

Trong đó:

  • command là đường dẫn đến file các bạn muốn mở.
  • mode là quyền truy cập vào file.

Danh sách các quyền truy cập vào file:

Mode Chú thích
r Chỉ được đọc (Read only)
r+ Được quyền đọc và ghi (Read + write)
w Chỉ được viết (write only)
w+ Được quyền đọc và viết (write + read). Nếu file này tồn tại thì nội dung cũ sẽ bị xóa đi và ghi lại nội dung mới, còn nếu file chưa tồn tại thì nó tạo file mới
a Được quyền viết và nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới
a+ Được quyền viết và đọc. Nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới
b Mở dưới dạng chế độ binary

VD:

// dùng @ để ngăn chặn thông báo lỗi khi sai đường dẫn file
$file = @fopen('data.txt', 'r');
if (!$file)
   echo "Mở file không thành công";
else
   echo "Mở file thành công";

2. Đọc File

Trong PHP thông thường chúng ta sẽ đọc file bằng 3 cách sau đây:

2.1 Đọc từng ký tự

Trong PHP chúng ta sử dụng hàm feof để kiểm tra xem đã ở vị trí cuối cùng của file chưa và hàm fgec để đọc từng ký tự của file.

VD:

$file = @fopen('data.txt', 'r');
if (!$file)
   echo "Mở file không thành công";
else {
   while (!feof($file)) { // hàm feof sẽ trả về true nếu ở vị trí cuối cùng của file
      echo fgetc($file); // đọc ra từng ký tự trong file
   }
}

2.2 Đọc từng dòng

Ở cách này chúng ta vẫn dùng feof để kiểm tra xem vị trí đang duyệt đã ở cuối cùng của file chưa và dùng hàm fgets để in ra từng dòng của file.

VD:

$file = @fopen('data.txt', 'r');
if (!$file)
   echo "Mở file không thành công";
else {
   while (!feof($file)) { // hàm feof sẽ trả về true nếu ở vị trí cuối cùng của file
      echo fgets($file); // đọc ra từng dòng trong file
   }
}

Hoặc chúng ta cũng có thể dùng hàm file để  file sang dạng mảng với mỗi dòng của file là một phần tử của mảng.

$data = @file('data.txt'); // chuyển đổi file sang mảng
foreach ($data as $value) {
   echo $value;
}

2.3 Đọc hết file

Để đọc hết file trong PHP chúng ta có thể dùng hàm fread($file, $filesize)

VD:

$file = @fopen('data.txt', 'r');
if (!$file)
   echo "Mở file không thành công";
else {
   echo fread($file, filesize('data.txt'));//filesize lấy ra dung lượng của file
}

3. Ghi File

Để ghi file thì bắt buộc file của bạn phải được mở ở chế độ mode có cho phép ghi file và tiếp đó dùng hàm fwrite để ghi dữ liệu.

VD:

$file = @fopen('data.txt', 'w');
if (!$file)
   echo "Mở file không thành công";
else {
   $data = 'Tôi ghi dòng này vào file nhé!';
   fwrite($file, $data);
}

4. Đóng File

Trong khi code bạn luôn luôn nhớ cho mình quy chế open-closed nghĩa là mở thì phải đóng và trong file cũng thế. Trong PHP các bạn có thể dùng hàm fclose để đóng file.

VD:

$file = @fopen('data.txt', 'w');
if (!$file)
   echo "Mở file không thành công";
else {
   $data = 'Tôi ghi dòng này vào file nhé!';
   fwrite($file, $data);
   fclose($file);
}

5. Các hàm khác

Và sau đây là một số hàm xử lý file khác.

5.1 Kiểm tra file

Trong PHP có cung xấp cho chúng ta hàm file_exists() để kiểm tra sự tồn tại của file, hàm sẽ trả về true nếu file tồn tại và ngược lại false nếu không.

VD:

if(file_exists('data.txt'))
   echo 'file tồn tại';
else
   echo 'file không tồn tại';

5.2 Kiểm tra quyền ghi file

Để kiểm tra quyền ghi file chúng ta dùng hàm is_writable() . Hàm này sẽ trả về true nếu được quyền ghi và ngược lại false nếu không được quyền ghi.

VD:

if(is_writable('data.txt'))
   echo 'Được phép ghi';
else
   echo 'không được phép ghi';

5.3 Lấy nội dung của file

Để lấy nội dung của một file chúng ta cũng có thể dùng hàm file_get_contents()

VD:

echo file_get_contents('data.txt');

5.4 Tạo thư mục

Để tạo file trong PHP chúng ta cũng có thể dùng hàm mkdir(path,mode,recursive,context)

VD:

mkdir('data.txt');

5.5 Kiểm tra thư mục

Để kiểm tra xem thư mục có tồn tại hay không thì các bạn có thể dùng hàm is_dir(path)

VD:

if(is_dir('public'))
   echo 'Tồn tại';
else
  echo 'Không tồn tại';

5.6 Đổi tên file

Để đổi tên file các bạn có thể dùng hàm rename(old,new).

VD: đổi tên file data.txt thành newdata.txt.

rename('data.txt', 'newdata.txt');

5.7 Copy file

Chúng ta sẽ sử dụng hàm copy(path,pathcopy) để copy file

VD: chúng ta cần copy file data.txt sang file datacopy.txt

copy('data.txt', 'data2.txt');

5.8 Xóa file

Chúng ta dùng hàm unlink() để xóa file.

VD:

if(unlink('data.txt'))
   echo 'Thành công';
else
  echo 'Không thành công';

5.9 Xem thêm các hàm xử lý file trong php khác

Ngoài ra các bạn có thể xem thêm các hàm khác nữa tại đây.

6. Tạm Kết

Bài viết hôm nay mình đã giới thiệu với mọi người về các hàm xử lý file trong PHP còn một phần rất quan trọng nữa là phần upload file thì mình xin phép được trình bài ở phần sau.

5/5 - (1 bình chọn)

Có thể bạn quan tâm

  • lớp, thuộc tính, phương thức

    Bài 03: Lớp – Thuộc Tính – Phương Thức

    Nội Dung Chính1. Mở file2. Đọc File2.1 Đọc từng ký tự2.2 Đọc từng dòng2.3 Đọc hết file3. Ghi File4. Đóng File5. Các hàm khác5.1 Kiểm tra file5.2 Kiểm tra quyền ghi file5.3 Lấy nội dung của file5.4 Tạo thư mục5.5 Kiểm tra thư mục5.6 Đổi tên file5.7 Copy file5.8 Xóa file5.9 Xem thêm các hàm …

  • Tham trị và tham chiếu trong php

    Bài 21: Tham Trị Và Tham Chiếu Trong PHP

    Nội Dung Chính1. Mở file2. Đọc File2.1 Đọc từng ký tự2.2 Đọc từng dòng2.3 Đọc hết file3. Ghi File4. Đóng File5. Các hàm khác5.1 Kiểm tra file5.2 Kiểm tra quyền ghi file5.3 Lấy nội dung của file5.4 Tạo thư mục5.5 Kiểm tra thư mục5.6 Đổi tên file5.7 Copy file5.8 Xóa file5.9 Xem thêm các hàm …

  • hàm header trong php

    Bài 20: Hàm Header Trong PHP

    Nội Dung Chính1. Mở file2. Đọc File2.1 Đọc từng ký tự2.2 Đọc từng dòng2.3 Đọc hết file3. Ghi File4. Đóng File5. Các hàm khác5.1 Kiểm tra file5.2 Kiểm tra quyền ghi file5.3 Lấy nội dung của file5.4 Tạo thư mục5.5 Kiểm tra thư mục5.6 Đổi tên file5.7 Copy file5.8 Xóa file5.9 Xem thêm các hàm …

  • hàm xủ ly ngày thang trong php

    Bài 19: Hàm Xử Lý Ngày Tháng Trong PHP

    Nội Dung Chính1. Mở file2. Đọc File2.1 Đọc từng ký tự2.2 Đọc từng dòng2.3 Đọc hết file3. Ghi File4. Đóng File5. Các hàm khác5.1 Kiểm tra file5.2 Kiểm tra quyền ghi file5.3 Lấy nội dung của file5.4 Tạo thư mục5.5 Kiểm tra thư mục5.6 Đổi tên file5.7 Copy file5.8 Xóa file5.9 Xem thêm các hàm …

  • các hàm kiểm tra dữ liệu trong php

    Bài 18: Các Hàm Kiểm Tra Dữ Liệu Trong PHP

    Nội Dung Chính1. Mở file2. Đọc File2.1 Đọc từng ký tự2.2 Đọc từng dòng2.3 Đọc hết file3. Ghi File4. Đóng File5. Các hàm khác5.1 Kiểm tra file5.2 Kiểm tra quyền ghi file5.3 Lấy nội dung của file5.4 Tạo thư mục5.5 Kiểm tra thư mục5.6 Đổi tên file5.7 Copy file5.8 Xóa file5.9 Xem thêm các hàm …

  • upload file trong php

    Bài 17: Upload File Trong PHP

    Nội Dung Chính1. Mở file2. Đọc File2.1 Đọc từng ký tự2.2 Đọc từng dòng2.3 Đọc hết file3. Ghi File4. Đóng File5. Các hàm khác5.1 Kiểm tra file5.2 Kiểm tra quyền ghi file5.3 Lấy nội dung của file5.4 Tạo thư mục5.5 Kiểm tra thư mục5.6 Đổi tên file5.7 Copy file5.8 Xóa file5.9 Xem thêm các hàm …