PHP有UNIX tempfile的包装器吗?或者只是tmpnam()有原子性问题,比如一次调用两个函数访问函数。
我想在许多脚本上大规模生成临时文件名。有tmpnam()的替代方案吗?
谢谢!
[edit: means tmpnam()]
没有灵丹妙药,但有两招:
你可以直接从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');
?>