Định Nghĩa.
Hàm file_put_contents()
dùng để ghi dữ liệu vào một file. Hàm này tương tự nhu các hàm fopen(), fwrite() và fclose() cùng đều ghi dữ liệu tới một file. Nếu filename không tồn tại, thì file được tạo. Nếu tồn tại, file sẽ được ghi đè, trừ khi FILE_APPEND flags được thiết lập.
Cú pháp.
Cú pháp:
file_put_contents ( string$filename
, mixed$data
[, int$flags
= 0 [, resource$context
]] ) : int
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.
- LOCK_EX Có được một khóa độc quyền trên tệp trong khi tiến hành viết. Nói cách khác, một cuộc gọi flock () xảy ra giữa cuộc gọi fopen () và cuộc gọi fwrite (). Điều này không giống với cuộc gọi fopen () với chế độ “x”.
- $context Một context resource hợp lệ được tạo bởi stream_context_create().
Giá trị trả về.
- Hàm này trả về số lượng byte đã được ghi tới file, hoặc FALSE nếu thất bại.
Lưu ý: Hàm này có thể trả về Boolean FALSE, nhưng cũng có thể trả về giá trị không Boolean ước tính cho FALSE. Vui lòng đọc phần trên Booleans để biết thêm thông tin. Sử dụng toán tử === để kiểm tra giá trị trả về của hàm này.
Errors/Exceptions.
- Một lỗi mức E_WARNING được tạo nếu không thể tìm thấy filename, maxlength nhỏ hơn 0 hoặc nếu tìm kiếm
offset
chỉ định trong luồng không thành công.
Ví dụ.
ví dụ 1 sử dụng đơn giản
code:
<?php $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í dụ 2 sử dụng flags.
<?php $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); ?>
Sự thay đổi qua các phiên bản.
- PHP 5.1.0 đã thêm hỗ trợ cho LOCK_EX và khả năng truyền tài nguyên luồng cho tham số dữ liệu
Ghi chú.
- Hàm này là kiểu binary-safe.(Nhị phân).
- tiền boa Một URL có thể được sử dụng làm tên tệp với chức năng này nếu trình fopen wrappers đã được bật. Xem fopen() để biết thêm chi tiết về cách chỉ định tên tệp. Xem các Supported Protocols and Wrappers để biết các liên kết đến thông tin về khả năng của các trình bao bọc khác nhau, ghi chú về cách sử dụng và thông tin về bất kỳ biến được xác định trước nào mà chúng có thể cung cấp.
Hàm liên quan.
- fopen() – Mỏ một file hoặc một URL
- fwrite() – Binary-safe file write
- file_get_contents() – Đọc nội dung file ở dạng string.
- stream_context_create() – Tạo a stream context
Thông tin thêm.
- Tập tin đặt nội dung thất bại nếu bạn cố gắng đặt một tập tin trong một thư mục không tồn tại. Điều này tạo ra thư mục.
<?php 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); } ?>
- Rõ ràng là chỉ nên sử dụng điều này nếu bạn đang viết một lần, nếu bạn đang viết nhiều lần vào cùng một tệp, bạn nên tự xử lý nó bằng fopen và fwrite, fclose khi bạn viết xong. So sánh tốc độ của file_put_contents() với các hàm tương tự, – Sử dụng file_put_contents() 1.000.000 lần.
Thực tế 0m3.932s Người dùng 0m2.487s Hệ thống 0m1.437s
– Sử dụng fopen() fwrite() cũng 1.000.000 Lần.Thực tế 0m2.265s Người dùng 0m1.819s Hệ thống 0m0.445s
- Một phiên bản đơn giản hóa của phương thức: http://php.net/manual/ru/feft.file-put-contents.php#84180
<?php 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 ); ?>
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm file_put_contents() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com