DANH MỤC: PHP Cơ Bản

Bài 17: Các hàm xử lý file trong PHP


Vấn đề xử lý file trong PHP rất quan trọng khi các bạn muốn làm một số chức năng như cache hay log file,...Và 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.

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:

Đọ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
    }
}

Đọ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.

VD:

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

Đọ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.

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';

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';

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');

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');

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';

Đổ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');

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');

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';

Xem thêm

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

6, Lời kết.

-Qua bài 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.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia