2024年波兰PHPC

系统获取模板目录

(PHP 5>=5.2.1,PHP 7,PHP 8)

系统获取模板目录返回用于临时文件的目录路径

描述

系统获取模板目录():一串

返回PHP存储临时文件的目录的路径默认值。

参数

此函数没有参数。

返回值

返回临时目录的路径。

示例

示例#1系统获取模板dir()例子

<?php(电话)
//在临时文件中创建临时文件
//使用sys_get_temp_dir()的文件目录
$temp_file($temp_文件)=坦普南(系统获取模板目录(),“燕鸥”);

回声
$temp_file(临时文件);
?>

上述示例将输出类似于:

C: \Windows\Temp\TuxA318.tmp

另请参见

添加备注

用户贡献的笔记11条注释

大阪·韦比
7年前
如果在systemd具有PrivateTmp=true的Linux系统上运行(这是CentOS 7和其他较新发行版上的默认值),此函数将只返回“/tmp”,而不是真正的、更长的、有点动态的路径。
罗亚尼在雅虎网站
10年前
从PHP 5.5.0开始,您可以设置sys_temp_dir INI设置,以便在默认临时目录不是选项时,此函数将返回一个有用的值。
匿名
16年前
此函数并不总是添加尾部斜杠。这种行为在不同的系统中是不一致的,所以您需要密切关注它。
伊斯梅尔·阿西
10年前
它没有文档记录,但此函数不会发送带有尾随空格的路径,实际上,如果存在斜杠,它会删除它。

https://github.com/php/php-src/blob/af6c11c5f060870d052a2b765dc634d9e47d0f18/main/php_open_temporary_file.c#L238
匿名
9年前
应该提到的是,可以使用ini-directive“systempdir”全局设置sysgettempdir()的返回值,也可以使用
php_admin_value系统模板目录/路径/目标/tmp
尼姆贾
8年前
在Linux上需要注意的一件非常有用的事情:

如果您从命令行运行PHP,则可以使用环境变量TMPDIR-来更改位置,而无需触摸PHP.ini这应该适用于大多数版本的PHP。

示例文件:test.php
<?php(电话)
回声系统获取模板目录() .PHP_终止;
?>

然后运行:

php测试.php
/临时管理计划

TMPDIR=/自定义/位置php测试.php
/自定义/位置
163点com上的ohcc
7年前
当sys_temp_dir指令未设置时,sys_get_temp_dir()在我的Windows上返回C:\Windows。
错误字节点nl处的bert-jan
14年前
此函数不考虑对临时路径和/或open_basedir的虚拟主机特定修改:

<虚拟主机>
php_admin_value open_basedir/home/user
php_admin_value上传tmp_dir/home/user/tmp
php_admin_value会话.save_path/home/user/tmp
</Virtualhost>

在该配置中,它仍然返回/tmp
阿瑟·克利福德
4年前
这对于通过串联构建路径很重要,因为要知道sys_get_temp_dir末尾不包含路径分隔符。

因此,默认情况下,sys_get_temp_dir()将返回temp目录设置为的任何值:

/临时管理计划

如果您试图连接另一个目录名temp并使用以下命令:

mkdir(sys_get_temp_dir())。'some_dir’);

这实际上试图生成:
/tmpsome_目录

除非您以超级用户身份运行php脚本,否则可能会导致权限错误。

相反,您需要:
mkdir(sys_get_temp_dir())。董事_合伙人。”some_dir');

这将创建:
/tmp/some_dir

我不知道Windows或其他平台是否在末尾包含目录分隔符。因此,如果您正在编写更通用的内容,您可能需要检查末尾的路径分隔符,如果没有,请附加它。
匿名
3年前
在windows上,当PHP用作CLI时,此函数将返回当前用户的临时目录,例如C:\Users\JohnSmith\AppData\Local\temp\9,而不是C:\windows\temp。
gmail网站上的besabellacyrus
4年前
在windows中使用this trim空格并添加~1
到顶部