Định nghĩa.
Hàm tmpfile()
sẽ tạo file tạm với tên file là duy nhất và có quyền đọc và viết( w+). File sẽ tự động bị xóa sau khi bạn đóng file, hoặc khi đoạn chương trình kết thúc.
Cú pháp.
Cú pháp:
tmpfile ( void ) : resource
Trong đó.
- Hàm
tmpfile()
không nhận tham số truyền vào.
Giá trị trả về.
- Hàm sẽ trả về một handle, tương tự như kết quả trả về của hàm
fopen()
. Nếu chạy thất bại, hàm sẽ trả về False.
Ghi chú.
- Thận trọng Nếu tập lệnh kết thúc đột ngột, tệp tạm thời có thể không bị xóa.
- Tệp sẽ tự động bị xóa khi đóng (ví dụ: bằng cách gọi fclose () hoặc khi không còn tham chiếu nào đến xử lý tệp được trả về bởi tmpfile ()) hoặc khi tập lệnh kết thúc.
Ví dụ.
Ví dụ # 1.
code.
<?php $temp = tmpfile(); fwrite($temp, "writing to tempfile"); fseek($temp, 0); echo fread($temp, 1024); fclose($temp); // this removes the file ?>
Ví dụ trên sẽ xuất ra:
writing to tempfile
Hàm liên quan.
- tempnam() – Tạo tệp với tên tệp duy nhất
- sys_get_temp_dir() – Trả về đường dẫn thư mục được sử dụng cho các tệp tạm thời
Thông tin thêm.
- Để lấy đường dẫn tệp cơ bản của con trỏ tệp tmpfile:
<?php $file = tmpfile(); $path = stream_get_meta_data($file)['uri']; // eg: /tmp/phpFx0513a ?>
- Tôi thấy chức năng này hữu ích khi tải tệp lên qua FTP. Một trong những tệp tôi đang tải lên được nhập từ một vùng văn bản trên trang trước, vì vậy thực sự không có “tệp” nào để tải lên, điều này đã giải quyết vấn đề một cách tuyệt vời:
<?php # Upload setup.inc $fSetup = tmpfile(); fwrite($fSetup,$setup); fseek($fSetup,0); if (!ftp_fput($ftp,"inc/setup.inc",$fSetup,FTP_ASCII)) { echo "<br /><i>Setup file NOT inserted</i><br /><br />"; } fclose($fSetup); ?>
Biến $ setup là nội dung của vùng văn bản. Và tôi không chắc bạn có cần fseek ($ temp, 0) hay không; trong đó, chỉ cần để nó trừ khi bạn biết nó không ảnh hưởng đến nó. - Vì chức năng này có thể không hoạt động trong một số môi trường, đây là một giải pháp đơn giản:
function temporaryFile($name, $content) { $file = DIRECTORY_SEPARATOR . trim(sys_get_temp_dir(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . ltrim($name, DIRECTORY_SEPARATOR); file_put_contents($file, $content); register_shutdown_function(function() use($file) { unlink($file); }); return $file; }
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 tmpfile() 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