Monday, March 9, 2020
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP
Tân Hồng IT
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP
    • All
    • PHP căn bản
    • PHP OOP
    lap trinh huong doi tuong oop php la gi

    PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

    lo trinh hoc php

    Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

    xu ly ngoai le php exception

    Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

    kiem tra du lieu isset php

    Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

    date time xu ly thoi gina ngay thang php

    Bài 17: Xử lý date time ngày tháng trong PHP

No Result
View All Result
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP
    • All
    • PHP căn bản
    • PHP OOP
    lap trinh huong doi tuong oop php la gi

    PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

    lo trinh hoc php

    Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

    xu ly ngoai le php exception

    Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

    kiem tra du lieu isset php

    Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

    date time xu ly thoi gina ngay thang php

    Bài 17: Xử lý date time ngày tháng trong PHP

No Result
View All Result
Tân Hồng IT
No Result
View All Result
Home Back-End

Bài 16: Các hàm xử lý và làm việc với file trong PHP

Bài 16 - Học PHP Căn Bản

by Tân Hồng IT
22/02/2020
in Back-End, Khoá Học, Kiến thức, Kiến thức lập trình, PHP, PHP căn bản, Web Development
0
ADVERTISEMENT

Contents

  1. Các loại File được hỗ trợ trong PHP
  2. Mở file với fopen
  3. Đọc File trong PHP
    1. Sử dụng hàm feof trong đọc file
    2. Đọc file từng dòng
    3. Đọc file từng ký tự
    4. Đọc hết file với fread
  4. Ghi, Chèn dữ liệu vào file trong PHP
  5. Đóng File
  6. Các hàm xử lí file khác
    1. Kiểm tra file có tồn tại không?
    2. Kiểm tra cấp quyền với file
    3. Lấy nội dung của file hàm file_get_contents
    4. Đổi tên file
    5. Copy file
    6. Xóa file
    7. Ghi toàn bộ nội dung chuỗi ra file
    8. Tạo một thư mục ( folder) mới
    9. Kiểm tra sự tồn tại đường dẫn thư mục
  7. Kết thúc

Bài viết này sẽ xoay quanh về nội dung của các hàm xử lý và làm việc với file trong PHP.  Đối với một ngôn ngữ lập trình, làm việc với file và thư mục là điều bắt buộc mà không thể tránh khỏi. 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 nhằm giúp ứng dụng web chạy nhanh hơn,…

ham xu ly file trong php
Các hàm xử lý và làm việc với file trong PHP

Việc nắm vững kiến thức về xử lý file và quyền hạn của file, thư mục khi học PHP không những giúp bạn dễ dàng lưu trữ thông tin cho website mà còn giúp bạn tăng tính bảo mật cho các file và thư mục quan trọng.

Quá trình làm việc với một file trong PHP diễn ra như sau: Mở file –> Thao tác (Đọc, Ghi ) –> Đóng file. 

Các loại File được hỗ trợ trong PHP

  • File quản lý hệ thống
  • File logs
  • Loại file.txt
  • File.log
  • File.csv
  • Dạng file hình ảnh file.gif, file.jpg …
  • File cài đặt chương trình (program.ini)

Mở file với fopen

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

fopen($path, $mode);

Trong đó:

  • $path là đường dẫn đến file các bạn muốn mở.
  • $mode là thuộc tính bao gồm các quyền hạn truy cập vào file.

Danh sách ký hiệu thuộc tính $mode gồm quyền hạn truy cập vào file.

ModeChú thích
rChỉ được đọc (Read only)
r+Được quyền đọc và ghi (Read + write)
wChỉ được viết (write only)
xTạo file mới chỉ để ghi.
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 chỉ để 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 cả viết lẫn đọ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
x+Quyền tạo file mới để đọc và ghi.
bMở dưới dạng chế độ binary

Hàm fopen() sẽ mở một file dựa vào đường dẫn truyền vào. Nếu truyền vào một URL, hàm sẽ sẽ tìm kiếm một trình xử lý giao thức(wrapper) cho URL đó, nếu không có trính xử lý nào đươc cung cấp, nó sẽ cảnh báo cho người dùng và sau đó tiếp tục như đối với các file bình thường.

Ví dụ:

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

Đọc File trong PHP

Có 3 cách đọc file thông thường trong PHP đó là đọc từng dòng, đọc từng ký tự và đọc hết file. Chúng ta sẽ đi vào từng cách đọc trên nhé!

Sử dụng hàm feof trong đọc file

Trước khi tìm hiểu các cách đọc file trong PHP mình xin giới thiệu các bạn hàm feof().

Hàm này có tác dụng đặt trong vòng lặp để sau khi đọc xong nó sẽ chuyển sang dòng mới hoặc ký tự mới đối với từng trường hợp đọc file.

Hàm feof() hữu ích khi lặp lại những dữ liệu không xác định được độ dài.

Đọc file từng dòng

Để đọc file từng dòng ta dùng hàm fgets($fp).

Ở cách này trước tiên chúng ta sẽ dùng feof để sau khi đọc xong nó sẽ chuyển sang dòng mới, và dùng hàm fgets để in ra từng dùng của file.

<?php
$fp = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    // Lặp qua từng dòng để đọc
    while(!feof($fp))
    {
        echo fgets($fp);
    }
}
?>

Ở phương pháp đọc file theo từng dòng này, ngoài cách duyệt từng dòng bằng việc dùng hàm feof trong vòng lặp while như trên thì ta còn có một cách khác đó là chuyển file sang dạng mảng với mỗi phần tử trong mảng là 1 dòng của file, sau đó chỉ cần duyệt mảng và xuất ra màn hình.

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

Trong đó: Hàm file() đọc nội dung của file và đưa vào một mảng. Mỗi phần tử của mảng tương ứng với một dòng của file.

Đọc file từng ký tự

Để đọc file từng dòng ta dùng hàm fgetc($fp).

Ở cách này trước tiên chúng ta sẽ dùng feof để sau khi đọc xong nó sẽ chuyển sang dòng mới, và dùng hàm fgetc để in ra từng dùng của file.

<?php
$fp = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    // Lặp qua từng ký tự để đọc
    while(!feof($fp))
    {
        echo fgetc($fp);
    }
}
?>

Đọc hết file với fread

Thông số trong hàm fread() chứa tên của file dùng để đọc dữ liệu và thông số thứ hai là một số lượng bytes nhất định để đọc dữ liệu.

Cú pháp: fread($file,$filesize)

<?php
$fp = @fopen('demo.txt', "r");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    echo fread($file, filesize('demo.txt'));
} ?>

Ghi, Chèn dữ liệu vào file trong PHP

Để ghi nội dung vào file ta dùng hàm fwrite($fp, $content) trong đó $fp là đối tượng trả về lúc mở file, còn $content

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

Vì vậy mà việc ghi file sẽ phụ thuộc vào lúc bạn mở file như thế nào. Ví dụ lúc bạn mở file ghi đè thì lúc ghi file nó sẽ ghi đè, lúc bạn mở file ghi kiểu append thì lúc ghi file nó sẽ thêm xuống cuối file, nếu bạn mở file chỉ cho đọc thì bạn không thể ghi file được.

<?php
$fp = @fopen('demo.txt', "w");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    fwrite($fp,'Đã mở file thành công, hãy tiếp tục thao tác mới');
}
?>

Đóng File

Quá trình làm việc với một file trong PHP diễn ra như sau: Mở file –> Thao tác (Đọc, Ghi ) –> Đóng file. Quy trình này là mặc định đối với nhiều ngôn ngữ lập trình khác nhau, chúng ta luôn phải tuân thủ theo quy trình đã mở thì phải đóng.

Việc mở file để sử dụng mà không đóng file rất nguy hiểm, vì thế sau khi sử dụng xong bạn nên đóng file để an toàn hơn và thu hồi tài nguyên hệ thống.

Để đóng file ta dùng hàm fclose($fp). Trong đó $fp là đối tượng trả về lúc bạn mở file.

<?php
$fp = @fopen('demo.txt', "w");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    echo 'Mở file thành công <br>';
    fwrite($fp,'Đã mở file thành công, hãy tiếp tục thao tác mới');
    fclose($fs); //đóng file
}
?>

Vì thế những ví dụ ở phần đọc file bạn đều phải bổ sung thêm hàm đóng file vào thì code mới đúng và hoàn chỉnh các bạn nhé!

Các hàm xử lí file khác

Kiểm tra file có tồn tại không?

Trong PHP có cung xấp cho chúng ta hàm file_exists($path) để 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. Trong đó $path là đường dẫn đến file cần test.

Bạn cũng có thể sử dụng hàm này khi bạn tạo ra một tập tin mới và bạn muốn đảm bảo rằng các tập tin chưa từng tồn tại trên server.

<?php
if (file_exists('STDIO.txt'))
{
    echo 'File exists';
}
?>

Kiểm tra cấp quyền với file

Để kiểm tra file có được cấp quyền gì không thì 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.

<?php
$fp = @fopen('demo.txt', "w");
// Kiểm tra file mở thành công không
if (!$fp) {
    echo 'Mở file không thành công';
}
else
{
    if(is_writable('demo.txt')){       
        fwrite($fp, 'Được phép ghi');}
    else{
        echo 'Không Được phép ghi';}
    fclose($fp);
}

Lấy nội dung của file hàm file_get_contents

Cú pháp: file_get_contents($path)

Trong đó $path là đường dẫn đến file, hoặc 1 đường link URL dẫn tới trang web chứa file.

echo file_get_contents('demo.txt');

Đổi tên file

Để đổi tên file ta dùng hàm rename($oldname, $newname), trong đó $oldname là đường dẫn đến file cần đổi tên, $newname là đường dẫn mới có kèm tên file cần đổi . Nếu bạn chỉ muốn đổi tên thôi thì đường dẫn của cả 2 biến giống nhau, chỉ khác nhau ở cái tên file.

Nếu tên file mới bị trùng thì file đó sẽ bị ghi đè.

rename('demo.txt', 'newdemo.txt');

Copy file

Cú pháp: copy($source, $newpath)

Trong đó $source là path file cần copy và $newpathlà path file cần di chuyển tới.

copy('demo.txt', 'newdemo.txt');

Xóa file

Ta dùng hàm unlink($path) để xóa file. Trong đó $path là đường dẫn đến file cần xóa.

<?php
if (file_exists('demo.txt'))
{
    if(unlink('demo.txt'))
        echo 'Xoá thành công';
    else
        echo 'Không thành công';
}
?>

Ghi toàn bộ nội dung chuỗi ra file

Đây là cách ghi toàn bộ một chuỗi ra file ngắn gọn (thay cho việc phải sử dụng fopen, fread, fclose).

Cú pháp: file_put_contents($path, $contents)

file_put_contents('demo.txt', 'đây là nội dung sẽ được ghi ra file');

Tạo một thư mục ( folder) mới

Cú pháp: mkdir($path)

Trong đó $path là đường dẫn đến folder cần tạo.

Ví dụ:

mkdir('webdevelopment/php/phpcanban');
Lưu ý: tên folder cuối cùng lằn trong link chính là tên folder bạn cần tạo và tất cả các folder trước nó bạn chắc chắn là phải có, nếu không sẽ bị lỗi.
Từ ví dụ trên ta sẽ nhận ra rằng ta đã phải có folder webdevelopment và trong nó là folder con có tên là php thì mới tạo thêm được.

Kiểm tra sự tồn tại đường dẫn thư mục

Cú pháp kiểm tra sự tồn tại của thư mục trong php là is_dir(path)

if(is_dir('phpcanban')){
    echo 'Folder này hiện đang tồn Tại';
}

Kết thúc

Qua bài viết trên mình đã nói qua về những hàm cần thiết về xử lý file cần biết trong PHP, Các bạn hãy thao khảo tìm mốt số bài tập thực hành để nâng cao hiểu biết của bản thân hơn nhé!

Ngoài ra còn rất nhiều hàm xử lý về file khác mà mình chưa nói tới, các bạn có thể tham khảo tại đây.

Bài viết tiếp theo mình sẽ sơ lược qua về vấn đề xử lý thời gian, ngày tháng trong PHP các bạn hãy đón đọc nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

  •  Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)
  • Bài 9: Hàm (Function) Trong PHP

  • Bài 10: Mảng (Array) Trong PHP

  • Bài 11: Các hàm xử lý mảng (Array) trong PHP
  • Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP
  • Bài 13: Phương thức GET và POST trong PHP
  • Bài 14: Cookie là gì? Cookie trong PHP
  • Bài 15: Session trong PHP

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

5 / 5 ( 1 vote )
Tags: CodeCode WebKiến thứcKiến Thức Lập TrìnhLearn PHPPHPWeb DevelopmentWebsite
ShareTweetScanShare
Previous Post

Vai trò Apache và PHP Hoạt Động Cùng Nhau Như Thế Nào

Next Post

Bài 17: Xử lý date time ngày tháng trong PHP

Related Posts

lam viec code nguoi khac

Cách làm việc với code của người khác

09/03/2020
lap trinh huong doi tuong oop php la gi

PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

05/03/2020
lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

28/02/2020 - Updated on 06/03/2020
xu ly ngoai le php exception

Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

26/02/2020 - Updated on 04/03/2020
kiem tra du lieu isset php

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

24/02/2020
date time xu ly thoi gina ngay thang php

Bài 17: Xử lý date time ngày tháng trong PHP

23/02/2020
Next Post
date time xu ly thoi gina ngay thang php

Bài 17: Xử lý date time ngày tháng trong PHP

kiem tra du lieu isset php

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,...)

xu ly ngoai le php exception

Bài 19: Xử lý ngoại lệ trong PHP - PHP Exceptions

lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest
lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

28/02/2020 - Updated on 06/03/2020
date time xu ly thoi gina ngay thang php

Bài 17: Xử lý date time ngày tháng trong PHP

23/02/2020
lenh ham thuong dung trong php

Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP

17/02/2020
ham xu ly file trong php

Bài 16: Các hàm xử lý và làm việc với file trong PHP

22/02/2020
hang va bien trong php

Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP

15/02/2020
gioi thieu ngon ngu lap trinh php

Bài 1: Ngôn ngữ lập trình PHP là gì và hướng dẫn thiết lập môi trường để lập trình PHP

1
lam viec code nguoi khac

Cách làm việc với code của người khác

0
apache web server

Apache là gì? Và Kiến thức về Apache Web Server

0
source code dong ho dong html5

Share đồng hồ động source code web html5 css js cực đẹp

0
kieu du lieu trong php

Bài 3: Những kiểu dữ liệu trong PHP

0
lam viec code nguoi khac

Cách làm việc với code của người khác

09/03/2020
lap trinh huong doi tuong oop php la gi

PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

05/03/2020
lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

28/02/2020 - Updated on 06/03/2020
xu ly ngoai le php exception

Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

26/02/2020 - Updated on 04/03/2020
kiem tra du lieu isset php

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

24/02/2020
  • lo trinh hoc php

    Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

    0 shares
    Share 0 Tweet 0
  • Bài 17: Xử lý date time ngày tháng trong PHP

    7 shares
    Share 7 Tweet 0
  • Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP

    0 shares
    Share 0 Tweet 0
  • Bài 16: Các hàm xử lý và làm việc với file trong PHP

    0 shares
    Share 0 Tweet 0
  • Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP

    0 shares
    Share 0 Tweet 0
Tân Hồng IT

Chia sẻ tài liệu, kiến thức, thủ thuật tin học, máy tính, khóa học, lập trình, giải trí tin học công nghệ IT

DMCA.com Protection Status
  • About

© 2020 - Tutorial, tips, tricks Information technology knowledge by TanHongIT.

No Result
View All Result
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP

© 2020 - Tutorial, tips, tricks Information technology knowledge by TanHongIT.