Hàm file_put_contents

Hàm file_put_contents ghi dữ liệu vào một tệp. Tham số đầu tiên - đường dẫn đến tệp, tham số thứ hai - dữ liệu cần ghi. Tham số thứ ba không bắt buộc xác định chế độ ghi (xem bảng dưới đây).

Tham số thứ tư không bắt buộc là một resource ngữ cảnh luồng, được tạo bởi hàm stream_context_create. Cho phép cấu hình các tham số làm việc với tệp hoặc tài nguyên mạng.

Cú pháp

phpfile_put_contents(
  string $filename,
  mixed $data,
  int $flags = 0,
  ?resource $context = null
): int|false

Giá trị của tham số thứ ba

Cờ Mô tả
FILE_USE_INCLUDE_PATH Nếu được thiết lập, hàm sẽ tìm tệp trong các thư mục được chỉ định trong tham số include_path trong cài đặt PHP tại tệp php.ini.
FILE_APPEND Ghi bổ sung dữ liệu vào cuối tệp thay vì ghi đè
LOCK_EX Lấy khóa độc quyền tệp trong suốt thời gian ghi

Ví dụ

Hãy ghi một chuỗi vào tệp:

php<?php
  $res = file_put_contents('data.txt', 'abcde');
  echo $res;
?>

Kết quả thực thi mã trả về số byte đã ghi:

php5

Ví dụ

Hãy thêm dữ liệu vào cuối tệp:

php<?php
  $res = file_put_contents('data.txt', '12345', FILE_APPEND);
  echo $res;
?>

Ví dụ

Ghi mảng vào tệp:

php<?php
  $data = ['a', 'b', 'c'];
  $res = file_put_contents('array.txt', implode(',', $data));
  echo $res;
?>

Ví dụ

Trong tham số thứ ba có thể chỉ định nhiều cờ, liệt kê chúng thông qua ký tự |. Ví dụ: ghi bổ sung dữ liệu với khóa tệp:

php<?php
  $res = file_put_contents(
    'log.txt',
    "text",
    FILE_APPEND | LOCK_EX
  );
  echo $res;
?>

Ví dụ

Sử dụng ngữ cảnh:

php<?php
  $opts = [
    'http' => [
      'method' => "POST",
      'header' => "Content-type: text/plain\r\n"
    ]
  ];
  
  $context = stream_context_create($opts);
  
  $res = file_put_contents(
    'http://example.com/api',
    'data=test',
    false,
    $context
  );
?>

Xem thêm