Hướng dẫn dùng warning: file_put_contents trong PHP

hàm file_put_contents() sẽ ghi nội dung vào file truyền vào. Nếu file không tồn tại, hàm sẽ tạo file và ghi nội dung vào đó. Nếu file đã tồn tại, hàm sẽ ghi đè lên nội dung cũ nếu tham số FILE_APPEND không được truyền vào.

Hướng dẫn dùng warning: file_put_contents trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápfile_put_contents( $filename, $data, $flag);

Trong đó:

  • $filename là đường dẫn tới file.
  • $data là nội dung của file.
  • $flag là tham số, mang một trong các giá trị sau:
    • FILE_USE_INCLUDE_PATH : hàm sẽ tìm kiếm $filename trong include directory, xem thêm include_path  để tìm hiểu.
    • FILE_APPEND : nếu file đã tồn tại, hám sẽ không ghi đè $data vào nội dung sẵn có mà sẽ nối $data vào cuối file.

Kết quả trả về

Hàm sẽ trả về số byte của nội dung $data đã được ghi vào $filename. Nếu chạy thất bại hàm trả về False.

Bài viết này được đăng tại [free tuts .net]

Ví dụ

Ví dụ đơn giản về hàm file_put_contents():

Code

file_put_contents('test.txt', 'this is a test');
//đọc toàn bộ file
echo file_get_contents('test.txt');

Sử dụng $flag, file test.txt tạo từ ví dụ 1:

Code

file_put_contents('test.txt', ' used file_get_contents function.', FILE_APPEND);
//đọc toàn bộ file
echo file_get_contents('test.txt');

Kết quả

this is a test used file_get_contents function.

Tham khảo: php.net

Xin chào tất cả anh em đang tìm hiểu về PHP, hôm nay chúng ta sẽ tìm hiểu về một hàm tên là File_put_contents(). Hàm này có chức năng sẽ ghi dữ liệu vào một file được tạo ra bằng PHP.

Cú pháp:

file_put_contents(filename, data, mode, context)

Các tham số truyền vào:

filename Bắt buộc. Chỉ định đường dẫn đến tệp để ghi vào. Nếu tệp không tồn tại, hàm này sẽ tạo một tệp.
data Bắt buộc. Dữ liệu để ghi vào tệp. Có thể là một chuỗi, mảng hoặc một luồng dữ liệu.
mode Không bắt buộc. Chỉ định cách mở / ghi vào tệp.
context Không bắt buộc. Chỉ định ngữ cảnh của xử lý tệp. Ngữ cảnh là một tập hợp các tùy chọn có thể sửa đổi hành vi của một luồng.

Ví dụ 1:

Ví dụ 2:

Kết luận: Với hàm file_put_contents() bạn sẽ đưa dữ liệu từ input vào trong một tập tin thông qua Form dễ dàng. Hãy thử tạo file và làm theo hướng dẫn xem thế nào nhé.

Hàm file_put_contents được biết đến là một cơ sở dữ liệu quan trọng trong giới công nghệ. Lý do vì sao nó lại trở nên cần thiết như vậy, hãy cùng nhau tham khảo bài viết dưới đây.

file_put_contents trong php có mục đích dùng để ghi lại dữ liệu trong một file, vậy nó có giá trị như thế nào?

1. Định nghĩa và cú pháp file_put_contents trong php

Nhiệm vụ của file_put_contents trong php là dùng để ghi dữ liệu vào một thư mục nào đó. Có hai trường hợp nếu filename này không tồn tại thì file mới được tạo ra, còn ngược lại thì file sẽ ghi đè. 

Hàm này có cấu trúc tương tự như fopen(), fwrite() và fclose(). Mục đích đều truyền dữ liệu vào một file. 

Hướng dẫn dùng warning: file_put_contents trong PHP

Tuy nhiên trong trường hợp FILE_APPEND flags được sử dụng thì file không thể ghi đè được. 

file_put_contents trong php có cú pháp khá đơn giản: 

file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int

Trong đó:

  • $filename là đường tới file 
  • $data là nội dung
  • $flag chỉ tham số có chứa các giá trị sau: 

FILE_USE_INCLUDE_PATH: Chứa nhiệm vụ tìm kiếm $filename và đa phần hàm này sẽ được tìm trong include directory.

FILE_APPEND: $data sẽ không ghi đè trong trường hợp file đã tồn tại và sẽ được kết nối ở file cuối.

LOCK_Ex: flock () sẽ xảy ra giữa fopen () và fwrite (). Đây được coi là một khoá duy nhất trên tệp khi bạn bắt đầu viết.

  • $context: Đây được biết đến là một context hợp lệ khi được phát triển bởi stream_context_create().

Giá trị trả về

Số lượng byte sẽ được trả về khi tới file, tuy nhiên nó cũng có thể trả về Boolean FALSE. Bạn cần sử dụng phương thức === để xem xét giá trị trả về của hàm này.

Errors: Nếu không tìm thấy filename hoặc maxlength nó sẽ xảy ra lỗi E_WARNING. Đây là lỗi khá phổ biến mà nhiều người gặp phải. Bạn sẽ không tìm thấy filename nếu giá trị nhỏ hơn 0.

Ví dụ: 

Với giá trị 1 khi dùng code

$file = ‘people.txt’;

// Mở tệp để lấy nội dung hiện có

$current = file_get_contents($file);

// Thêm nội dung mới vào file.

$current .= “John Smith\n”;

// Viết thêm nội dung vào file.

file_put_contents($file, $current);

?>

Với giá trị 2 khi dùng flash 

$file = ‘people.txt’;

// The new person to add to the file

$person = “John Smith\n”;

// Viết nội dung vào một tập tin,

//sử dụng cờ FILE_APPEND để nối nội dung vào cuối tệp

// và cờ LOCK_EX để ngăn chặn bất kỳ ai khác ghi vào tệp cùng một lúc

file_put_contents($file, $person, FILE_APPEND | LOCK_EX);

?>

2. Sự thay đổi của file_put_contents trong php

Hiện nay, php 5.1.0 được hỗ trợ thêm LOCK_EX cùng chức năng truyền tải cho tham số dữ liệu.

Hướng dẫn dùng warning: file_put_contents trong PHP

Các hàm liên quan đến php

gồm fopen(), fwrite(), file_get_contents(), stream_context_create().

Nếu đặt một tập tin trong thư mục không tồn tại thì việc đặt nội dung của bạn sẽ không thể hoàn thành. Thay vào đó nó sẽ tạo ra mục:

    function file_force_contents($dir, $contents){

        $parts = explode(‘/’, $dir);

        $file = array_pop($parts);

        $dir = ”;

        foreach($parts as $part)

            if(!is_dir($dir .= “/$part”)) mkdir($dir);

        file_put_contents(“$dir/$file”, $contents);

    }

?>

Khi bạn viết vào tệp nhiều lần thì nên dùng fopen và fwrite, fclose để tiến hành nhanh chóng hơn. Sử dụng file_put_contents() và fopen() fwrite() sẽ là 1.000.000 lần.

Dưới đây là một bản đơn giản hoá của

function file_force_contents( $fullPath, $contents, $flags = 0 ){

    $parts = explode( ‘/’, $fullPath );

    array_pop( $parts );

    $dir = implode( ‘/’, $parts );

    if( !is_dir( $dir ) )

        mkdir( $dir, 0777, true );

    file_put_contents( $fullPath, $contents, $flags );

}

file_force_contents( ROOT.’/newpath/file.txt’, ‘message’, LOCK_EX );

?>

Php được coi là phiên bản nhị phân có tên binary-safe. URL có thể dùng làm trên tệp nếu fopen wrappers được bật.  

Hi vọng với chia sẻ của chúng tôi về file_put_contents trong php sẽ giúp bạn hiểu rõ hơn về nội dung của các hàm. Cảm ơn đã theo dõi và chúc các bạn mạnh khỏe.