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 目录下创建了文件。