Hướng dẫn dùng log txt 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

ModeChú thíchrChỉ được đọc (Read only)r+Được quyền đọc và ghi (Read + write)wChỉ đượ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ớiaĐượ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ớia+Đượ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ớibMở 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

// 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";
7 để kiểm tra xem đã ở vị trí cuối cùng của file chưa và hàm
// 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";
8 để đọ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

// 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";
7 để kiểm tra xem vị trí đang duyệt đã ở cuối cùng của file chưa và dùng hàm
$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
    }
}
0 để 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 = @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
    }
}
1 để  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

$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

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

$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
    }
}
3 để 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

$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
    }
}
4 để đó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 = @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
    }
}
5 để kiểm tra sự tồn tại của file, hàm sẽ trả về
$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
    }
}
6 nếu file tồn tại và ngược lại
$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
    }
}
7 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

$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
    }
}
8 . 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 = @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
    }
}
9

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";
0

Tạo thư mục

-Để tạo file trong PHP chúng ta cũng có thể dùng hàm

$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
    }
}
0

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";
1

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

$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
    }
}
1

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

Đổi tên file

-Để đổi tên file các bạn có thể dùng hàm

$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
    }
}
2.

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

// 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";
3

Copy file

-Chúng ta sẽ sử dụng hàm

$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
    }
}
3 để copy file

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

// 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";
4

Xóa file

-Chúng ta dùng hàm

$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
    }
}
4 để xóa file.

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";
5

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.

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Đăng Ký

PHP Cơ Bản

Bài trước  Bài sau

5 comments 507 likes

Hướng dẫn dùng log txt trong PHP

Vũ Thanh Tài

About author

The best way to learn is to share

Xem tất cả bài đăng

Bài Viết Mới

  • Hướng dẫn dùng log txt trong PHP

    Những tính năng mới trong PHP 8.1

    1 năm trước 7 Comments

  • Hướng dẫn dùng log txt trong PHP

    Bài 39: Cache trong Laravel 8

    2 năm trước 1 Comments

  • Hướng dẫn dùng log txt trong PHP

    PHP Swoole là gì? nó có gì mạnh?

    2 năm trước 0 Comment

  • Hướng dẫn dùng log txt trong PHP

    Cài đặt SSL trên local sử dụng mkcert

    2 năm trước 4 Comments

5 Comments

Hướng dẫn dùng log txt trong PHP

Chào admin!

Cho em hỏi em dùng hàm file_get_contents() để thực hiện lấy nội dung của file nhưng có 1 vấn đề là nếu file đó lớn hơn khoảng 100kb thì hàm đó lại không lấy được. Vậy cho em hỏi có cách nào để lấy được nội dung của những file đó không? Em cảm ơn!

Dũng

4 năm trước

Reply

Hướng dẫn dùng log txt trong PHP

Anh ơi cho em hỏi chút.

vd : 1 folder trong đó có chứa file là:  abc.prt    abc.prt.1  abc.prt.2  abc.prt.3.....abc.prt.n  ( (n=1 n=2  n=3   ............)     

như vậy   abc.prt.n  là phiên bản save sau củng.  còn   abc.prt.1  abc.prt.2.....vv   là file cũ cần bỏ

Em cần một đoạn mã code để save thành đuôi  .bat    khi chạy đoạn mã này thì nó xóa hết các file save trước đó chỉ để lại file sau cùng là  abc.prt.n

em xin cảm ơn

HUNG

4 năm trước

Reply

Hướng dẫn dùng log txt trong PHP

Đoạn code dưới sẽ lấy ra list file trong thư mục và sắp xếp chúng theo thời gian file được tạo trên folder giảm dần, giờ chỉ cần lấy thằng đầu tiên trong list sẽ là thằng mới nhất.