tempnam返回一个额外的路径前缀

时间:2010-06-29 08:12:54

标签: php

当我们打电话时

$tmpFilename = tempnam(SIEFREPOSITORY, 'Sief');

它返回

/export/sief/share/htdocs/siefvalidator_prod/sieflog/SiefMVNtuW

SIEFREPOSITORY是

/share/htdocs/siefvalidator_prod/sieflog/SiefMVNtuW

为什么要添加额外的/ export / sief前缀?

2 个答案:

答案 0 :(得分:0)

SIEFREPOSITORY路径似乎不可写,不存在或无法使用,在这种情况下tempnam会回退到其他路径,如documenation中所述:

  

在指定目录中创建具有唯一文件名的文件,其访问权限设置为0600。 如果该目录不存在,tempnam()可能会在系统的临时目录中生成一个文件,并返回该名称。

  

如果PHP无法在指定的dir参数中创建文件,则它会回退到系统默认值。在NTFS上,如果指定的目录包含超过65534个文件,也会发生这种情况。

检查该路径是否有问题,并查看上述链接网站中的评论,有一些关于获得对tempnam的更多控制的花絮。

答案 1 :(得分:0)

这是因为/ share是符号链接到/ export / sief / share而后来的php版本从tempnam()返回绝对路径,这给了我符号链接的目标[/export/...].

它给我带来了问题,因为它不在open_basedir中。