Hàm tmpfile() trong PHP

24/11/2020 - lượt xem
Chia sẻ
 
Rate this post

Đị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

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm