반응형
파일 핸들을 사용하여 파일 이름 가져오기(또는 파일 삭제)
파일 핸들로부터 파일명을 취득할 수 있습니까?또는 핸들만 있는 파일을 삭제하려면 어떻게 해야 하나요?
stream_get_meta_data가 있습니다.tmpfile()에서 얻은 스트림에 대해 동작합니다.일반 파일 포인터로 호출하면 기본 이름만 얻을 수 있습니다.
$meta_data = stream_get_meta_data($stream_or_file_pointer);
$filename = $meta_data["uri"];
echo $filename;
tmpfile()의 예:
"/private/var/folders/v3/n54x13jx5v7610fw9dm0wcxm0000gn/T/phpCJvevP"
fopen("some file", "r")의 예:
"test"
아니요. Afaik에서는 직접 PHP에 대한 함수는 없습니다. Linux 에서는,
$fp = fopen('somefile', 'r');
$stat = fstat($fp);
$inode = $stat['ino'];
system("find -inum $inode", $result);
echo $result;
이것은 테스트되지 않았기 때문에 조정이 필요할 수 있습니다.
편집 더 간단한 해결책이 있는 것 같습니다.
이를 수행하려면 파일 이름을 저장하는 래퍼를 만들어야 합니다.파일 핸들에는 생성된 파일 이름의 컨텍스트가 없습니다.
임시 파일을 사용하는 클린 방법:
<?
$tmp=array_search('uri', @array_flip(stream_get_meta_data($GLOBALS[mt_rand()]=tmpfile())));
file_put_contents($tmp, 'hello');
echo file_get_contents($tmp);
?>
tmp 파일은 fcloss 할 필요 없이 php가 종료되는 동안 삭제됩니다.
언급URL : https://stackoverflow.com/questions/5144583/getting-filename-or-deleting-file-using-file-handle
반응형
'programing' 카테고리의 다른 글
vue 전원이 켜진 Chrome 확장 내에서 npm을 사용하여 부트스트랩 및 종속성을 로드하는 방법 (0) | 2023.01.02 |
---|---|
"assert" 키워드의 역할은 무엇입니까? (0) | 2023.01.02 |
JavaScript 개체: 이름으로 변수 속성에 문자열로 액세스합니다. (0) | 2023.01.02 |
PHP 응용 프로그램에서 다중 스레딩을 사용하려면 어떻게 해야 합니까? (0) | 2023.01.02 |
MySQL 쉼표로 구분된 두 테이블 결합 (0) | 2023.01.02 |