PHP | tempnam 函數
怎樣創建一個具有唯一文件名的文件
最近更新時間 2021-01-25 16:42:13
tempnam 函數創建一個具有唯一文件名的文件。
tempnam() 函數在指定目錄中建立一個具有唯一文件名的文件。如果該目錄不存在,會在系統臨時目錄中生成一個文件,並返回其文件名。成功後返回文件名。
函數定義
tempnam ( string $dir , string $prefix ) : string
// 源文件位於:ext/standard/file.c
# 函數定義
PHP_FUNCTION(tempnam)
{
char *dir, *prefix;
size_t dir_len, prefix_len;
zend_string *opened_path;
int fd;
zend_string *p;
ZEND_PARSE_PARAMETERS_START(2, 2)
Z_PARAM_PATH(dir, dir_len)
Z_PARAM_PATH(prefix, prefix_len)
ZEND_PARSE_PARAMETERS_END();
if (php_check_open_basedir(dir)) {
RETURN_FALSE;
}
p = php_basename(prefix, prefix_len, NULL, 0);
if (ZSTR_LEN(p) > 64) {
ZSTR_VAL(p)[63] = '\0';
}
RETVAL_FALSE;
if ((fd = php_open_temporary_fd_ex(dir, ZSTR_VAL(p), &opened_path, 1)) >= 0) {
close(fd);
RETVAL_STR(opened_path);
}
zend_string_release_ex(p, 0);
}
參數
- checkdir -文件的目錄。
- checkprefix -文件的前綴。
返回值
- checkbool - 成功時返回新的臨時文件名,失敗時返回 false。
示例1: - 使用 tempnam() 函數創建一個具有唯一文件名的文件。
<?php
/**
* PHP tempnam() 函數創建一個具有唯一文件名的文件
*
* @since Version 1.0.0
* @filesource
*/
// 創建臨時文件
$tmpname = tempnam("foo", "foo");
echo 'FileName::'.$tmpname.PHP_EOL;
FileName::/tmp/fooDpcbeP
注意:因為 foo 目錄不存在,系統自動在 /tmp 目錄下創建了文件。