Search…

Xử Lý File trong PHP

06/09/20203 min read
Đọc ghi, làm việc và xử lý file trong PHP.

Mở và đóng một file trong PHP

Mở file

Cú pháp: fopen($path, $mode);

Trong đó:  

  • $path là đường dẫn tới file.
  • $mode là thuộc tính.

Thuộc tính bao gồm các quyền hạn cho phép thao tác trên file đó như thế nào:

  • r: Read Only.
  • r+: Read – Write.
  • w: Write  Only, nếu file không tồn tại sẽ tạo một file mới
  • w+: Write – Read, nếu file không tồn tại sẽ tạo một file mới.
  • a: append – chỉ ghi. Nếu file tồn tại sẽ ghi tiếp vào phần dưới của nội dung.
  • a+: append – đọc và ghi. Nếu file tồn tại sẽ ghi tiếp vào phần dưới của nội dung, nếu file không tồn tại sẽ tạo file mới.
  • b: Mở file dưới dạng file binary ( nhị phân ).

Đóng file

Cú pháp: fclose(file vừa mở);

Ví dụ

<?php
$fp = fopen("PHP.txt", "r") or exit ("Can't find this file");
fclose(fp); ?>

Đọc file

Có 3 cách đọc file thông dụng trong PHP:

  • Đọc file từng kí tự
  • Đọc file từng dòng
  • Đọc hết file

Đọc file từng kí tự

Dùng hàm fgetc($fp) để đọc file theo từng kí tư.

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

Đọc file từng dòng

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

<?php
$fp = fopen('PHP.txt', "r");
  

if (!$fp) {
    echo "Can't open file";
}
else
{
    // Lặp qua từng dòng để đọc
    while(!feof($fp))
    {
        echo fgets($fp);
    }
}
?>

Đối với đọc file từng kí tự và đọc file từng dòng phải sử dụng hàm feof($fp) đặt trong vòng lặp while để sau khi đọc xong nó sẽ chuyển sang dòng mới hoặc kí tự mới.

Đọc hết cả file

Để đọc hết cả file dùng hàm fread($fp, $size).

Trong đó:

  • $fp là đối tượng lúc mở file.
  • $size là kích cỡ của file cần đọc.
<?php
$fp = fopen('PHP.txt', "r");	  

if (!$fp) {
    echo "Can't open file";
}
else
{
    // Đọc file và trả về nội dung
    $data = fread($fp, filesize('STDIO.txt'));
    echo $data;
}
?>

Ghi file

Để ghi nội dung vào file dùng hàm fwrite($fp, $content) trong đó $fp là đối tượng trả về lúc mở file, còn $content là nội dung muốn ghi vào. Việc ghi file phụ thuộc vào lúc mở file như thế nào. Ví dụ lúc mở file ghi đè thì lúc ghi file nó sẽ ghi đè, lúc mở file ghi kiểu append thì lúc ghi file nó sẽ thêm xuống cuối file, nếu mở file chỉ cho đọc thì bạn không thể ghi file được.

<?php
$fp = fopen('PHP.txt', "w");
  
if (!$fp) {
    echo "Can't open file";
}
else
{
    $data = 'Hello STDIO!';
    fwrite($fp, $data);
}
?>

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

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

Dùng hàm file_exists($path), trong đó $path là đường dẫn đến file cần kiểm tra.

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

Đổi tên file

Để đổi tên file 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 chỉ muốn đổi tên thì đường dẫn của cả 2 biến giống nhau, chỉ khác nhau ở tên file. Nếu tên file mới bị trùng thì file đó sẽ bị ghi đè.

<?php
rename('PHP.txt', 'PHP_new.txt');
?>

Xóa file

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

<?php
if ( file_exists('PHP.txt'))
{
       unlink('PHP.txt');
}
?>
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024