Định nghĩa.
Hàm tempnam()
sẽ tạo file với tên file là duy nhất trong nằm thư mục truyền vào. Nếu thư mục không tồn tại, hàm tempnam()
có thể tạo tệp tin vào thư mục tạm của hệ thống.
Cú pháp.
Cú pháp:
tempnam ( string$dir
, string$prefix
) : string
Trong đó.
$dir
là thư mục sẽ chứa file.$prefix
là tên file, hàm sẽ chỉ dụng 3 kí tự đầu tiên của $prefix để làm tiền tố của tên file được tạo.
Giá trị trả về.
- Hàm sẽ trả về đường dẫn tới file vừa tạo nếu tạo file thành công. ngược lại hàm trả về False.
Ghi chú.
- Lưu ý: Chỉ 63 ký tự đầu tiên của tiền tố được sử dụng. Windows thậm chí chỉ sử dụng ba ký tự đầu tiên của tiền tố.
- Lưu ý: Nếu PHP không thể tạo một tệp trong tham số dir được chỉ định, nó sẽ trở về mặc định của hệ thống. Trên NTFS, điều này cũng xảy ra nếu dir được chỉ định chứa nhiều hơn 65534 tệp.
Changelog.
- 5.3.0 Chức năng này hiện khả dụng trên nền tảng Windows (Vista, Server 2008 trở lên).
Ví dụ.
Ví dụ # 1.
code.
<?php $tmpfname = tempnam("/tmp", "FOO"); $handle = fopen($tmpfname, "w"); fwrite($handle, "writing to tempfile"); fclose($handle); // do here something unlink($tmpfname); ?>
Hàm liên quan.
- tmpfile() – Tạo một tệp tạm thời
- 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
- unlink() – Xoá file
Thông tin thêm.
- Hãy coi chừng việc sử dụng $ dir trống như một “trick” để tạo các tệp tạm thời trong thư mục tạm thời của hệ thống.
<?php $tmpfname = tempnam('', 'FOO'); // not good ?>
Nếu một hạn chế open_basedir có hiệu lực, thủ thuật sẽ không hoạt động. Bạn sẽ nhận được một thông báo cảnh báo như Cảnh báo: tempnam () [function.tempnam]: hạn chế open_basedir có hiệu lực. Tệp () không nằm trong (các) đường dẫn được phép: (/var/www/vhosts/example.com/httpdocs:/tmp).<?php $tmpfname = tempnam(sys_get_temp_dir(), 'FOO'); // good ?>
- Xin lưu ý rằng hàm này có thể đưa ra thông báo trong PHP 7.1.0 trở lên. Đây là một bản sửa lỗi: https://bugs.php.net/bug.php?id=69489 Bạn có thể đặt address operator (@) để tắt thông báo:
<?php if ($tmp = @tempnam() !== false) { // ... } ?>
Hoặc bạn có thể thử đặt cài đặt “upload_tmp_dir” trong php.ini thành đường dẫn thư mục tạm thời trong hệ thống của bạn. Không chắc chắn, nếu cái cuối cùng ngăn các thông báo. - Lưu ý rằng tempnam trả về đường dẫn đầy đủ đến tệp tạm thời, không chỉ tên tệp.
- Nếu bạn truy cập trang người dùng linux cho hàm C tempnam (3), bạn sẽ thấy ở cuối “Không bao giờ sử dụng hàm này. Thay vào đó, hãy sử dụng mkstemp (3)”. Nhưng hàm tempnam () của php không thực sự sử dụng tmpnam (3), vì vậy không có vấn đề gì (trong Linux, nó sẽ sử dụng mkstemp (3) nếu có).
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 tempnam() 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