2011-08-09 4 views
1

PHP에 UNIX tempfile 용 래퍼가 있습니까? 또는 함수에 액세스 할 때 두 번 호출과 같은 원자 성 문제가있는 것은 tmpnam()입니다.원자 적 문제가없는 tmpnam() 대신 사용할 수있는 옵션이 있습니까?

많은 스크립트에서 임시 파일 이름을 대량으로 생성하고 싶습니다. tmpnam()에 대한 대안은 무엇입니까?

감사합니다.

[편집 : 의미 tmpnam이()]

+1

'tempnam'을 의미합니까? – thetaiko

+0

좋은 전화! – KRB

답변

1

없음 실버 총알하지만,이 해킹 :

당신이 바로 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'); 
?> 
관련 문제