Ngu ngơ học làm web (76) - Xử lý tập tin 1

Tiếp theo của: Ngu ngơ học làm web (75) - Lấy tin từ dantri.com.vn
------

Phần 76.       Xử lý tập tin 1


Đây là clip số 74:


Để kiểm tra một tập tin/thư mục có tồn tại hay không, sử dụng hàm: file_exists($fileName)

Trong đó $fileName là đường dẫn của tập tin/thư mục cần kiểm tra, nếu tập tin/thư mục có tồn tại hàm này trả về true, nếu tập tin/thư mục không tồn tại hàm này trả về giá trị false.

Ví dụ,

  $file = 'ThuMuc';
  if(file_exists($file)) {
    echo 'Tồn tại.';
  } else {
    echo 'Không tồn tại.';
  }

Xem một số thông tin cơ bản của tập tin:

- filetype($fileName): kiểu của tập tin (trả về hai giá trị: file hoặc dir)

- filesize($fileName): trả về kích thước của tập tin (đơn vị byte)

Ví dụ sử dụng hàm filesize và đổi dung lượng ra: B, KB, MB, GB, hoặc TB,

$file = 'ThuMuc/DuLieu.txt';
  $size = filesize($file);

  function convertSize($size, $totalDigit = 2, $distance = ' ') {
    $units = array('B', 'KB', 'MB', 'GB', 'TB');
    $length = count($units);
    for($i = 0; $i < $length; $i++) {
      if ($size >= 1024) {
        $size = $size/1024;
      } else {
        $unit = $units[$i];
        break;
      }
    }
    $result = round($size, $totalDigit) . $distance . $unit;
    return $result;
  }
  echo convertSize($size);

- is_readable($fileName): kiểm tra xem có quyền đọc $fileName hay không

- is_writeable($fileName): kiểm tra xem có quyền ghi $fileName hay không

- is_executable($fileName): kiểm tra xem có quyền thực thi $fileName hay không

Đây là clip số 75:


Lấy thông tin từ đường dẫn.

- basename($path): trả về tên của tập tin, gồm cả phần mở rộng, của $path

- basename($path, ‘.txt’): trả về tên của tập tin, không có phần mở rộng, nếu tập tin là .txt, của $path

- dirname($path): trả về tên thư mục của $path

- pathinfo($path, $options): trả về một mảng chứa các thông tin (dirname, basename, extension, filename) của $path. Ví dụ,

Array
(
    [dirname] => ThuMuc
    [basename] => DuLieu.txt
    [extension] => txt
    [filename] => DuLieu
)

- pathinfo($path, PATHINFO_BASENAME): trả về tên tập tin và phần mở rộng

- pathinfo($path, PATHINFO_EXTENSION): trả về phần mở rộng

- pathinfo($path, PATHINFO_DIRNAME): trả về thư mục

- pathinfo($path, PATHINFO_FILENAME): tên tập tin không có phần mở rộng

Đọc nội dung của tập tin:

- file($fileName): đọc nội dung tập tin $fileName đưa vào một mảng, mỗi dòng trong tập tin $fileName tương ứng với một phần tử của mảng.

- file_get_contents($fileName): đọc tập tin $fileName đưa vào một chuỗi.

Bài tập: đọc tập tin văn bản, thực hiện các thống kê: tổng số hàng, tổng số khoảng trắng, tổng số từ, tổng số kí tự

[DuLieu.txt]

A strong emphasis in this report is on the core.
of the Web and how selected.
technologies and features amount.

[PHP]

$file = 'ThuMuc/DuLieu.txt';
  $data = file($file);
  // đếm số hàng
  $lines = count($data);
  // đếm số từ
  $string = file_get_contents($file);
  $words = str_word_count($string);
  // đếm khoảng trắng
  $spaces = substr_count($string, ' ');
  // đếm kí tự
  preg_match_all('/\S/ismU', $string, $matches);
  $chars = count($matches[0]);
  // echo '<pre>';
  // print_r($matches);
  // echo '</pre>';
  echo 'Tổng số hàng: ' . $lines . '<br>';
  echo 'Tổng số từ: ' . $words . '<br>';
  echo 'Tổng số khoảng trắng: ' . $spaces . '<br>';
  echo 'Tổng số kí tự: ' . $chars . '<br>';

Đây là clip số 76:


Để ghi nội dung vào tập tin sử dụng hàm file_put_contents($fileName, $data, $mod):

- $data: dữ liệu ghi vào tập tin

- $fileName: tên tập tin

- hàm này sẽ thực hiện tạo tập tin mới nếu chưa có, mở tập tin, ghi dữ liệu và đóng tập tin

- nếu $mod = FILE_APPEND, nội dung sẽ được ghi nối vào cuối tập tin

- nếu ghi thành công trả về số kí tự ghi được, nếu thất bại trả về FALSE

Bài tập, đọc nội dung tập tin và xóa một hàng dữ liệu trong đó.

  $file = 'ThuMuc/DuLieu1.txt';
  if (file_exists($file)) {
    $arrData = file($file);
    unset($arrData[2]);
    file_put_contents($file, $arrData);
  } else {
    echo 'Tập tin không tồn tại';
  }

Để đổi tên tập tin, sử dụng hàm rename($oldName, $newName), hàm này cho phép thay đổi cả đường dẫn của tập tin. Hàm trả về giá trị TRUE/FALSE.

Ví dụ,

  $file = 'ThuMuc/DuLieu2.txt';
  $file1 = 'ThuMuc/DuLieu3.txt';
  rename($file, $file1);

Ví dụ đổi tên và di chuyển tập tin,

  $file = 'ThuMuc/DuLieu2.txt';
  $file1 = 'DuLieu3.txt';
  rename($file, $file1);

Ví dụ đổi tên thư mục,

  $file = 'ThuMuc';
  $file1 = 'ThuMuc1';
  rename($file, $file1);

Để sao chép tập tin, sử dụng hàm copy($sourceFile, $destinationFile). Hàm trả về giá trị TRUE/FALSE.

Ví dụ,

  $file = 'ThuMuc\DuLieu.txt';
  $file1 = 'ThuMuc\DuLieu1.txt';

  copy($file, $file1);
-----------
Cập nhật [16/9/2020]
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web