PHP是否有UNIX tempfile的包装器?或者只是tmpnam()具有原子性问题,例如两次调用一次访问函数。
我想在很多脚本上大规模生成临时文件名。 tmpnam()的替代品吗?
谢谢!
[编辑:意思是tmpnam()]
答案 0 :(得分:1)
没有银弹,但有2个黑客:
您可以直接从php调用该函数:
<?php
$tempFileName = exec("mktemp -t $prefix");
?>
你也可以使用像这样的递归函数(脏,但应该工作:)):
<?php
function tmpName($prefix, $path, $ext) {
$name = (string)$prefix.getmypid().microtime(true).$ext;
if (file_exists($path.'/'.$name)) {
return tmpName($prefix, $path, $ext);
} else {
return $name;
}
}
$tempFileName = tmpName('an arbitrary prefix','/tmp','.txt');
?>