>  기사  >  백엔드 개발  >  PHP에서 임시 파일을 작동하는 방법

PHP에서 임시 파일을 작동하는 방법

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-05-31 09:34:062273검색

이 글에서는 PHP에서 임시 파일을 작동하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP에서 임시 파일을 작동하는 방법

누구나 파일 관련 작업에 대한 이해가 매우 높아야 하며, 앞으로 매뉴얼에서 관련 파일 작업 기능을 읽을 때 자세히 설명하도록 하겠습니다. 오늘은 먼저 PHP의 임시 파일과 관련된 몇 가지 사항을 살펴보겠습니다.

PHP의 기본 임시 생성 파일 디렉터리를 가져옵니다

Linux 운영 체제를 공부한 사람들은 /tmp 디렉터리(보통 Windows에서는 C:WindowsTemp)라는 디렉터리가 있다는 것을 알고 있을 것입니다. 일부 시스템 파일 임시 파일을 저장하기 위해 이 디렉터리를 임시 파일 디렉터리라고도 합니다. 많은 소프트웨어는 일부 캐시, 임시로 생성된 스크립트 등을 포함하여 일부 임시로 저장된 파일을 이 디렉토리에 배치합니다. 또한 PHP는 기본적으로 임시 파일 디렉터리를 이 디렉터리로 지정하며 SESSION 파일을 포함한 임시 파일은 여기에 저장됩니다. php.ini 파일의 sys_tmp_dir을 통해 설정할 수 있습니다.

물론, 동적으로 실행되는 PHP 프로그램에서는 함수를 통해 현재 임시 파일 디렉터리를 가져올 수도 있습니다.

print_r(sys_get_temp_dir());
// /tmp

임시 파일 만들기

이제 임시 파일 디렉터리가 생겼으니, PHP는 물론 우리가 임시 파일을 직접 만들 수 있도록 신중하게 함수를 준비했습니다.

$tmpFile = tmpfile();
fwrite($tmpFile, "I'm tmp file.");
// ll /tmp
// vim phpbnAjbE

sleep(10);

fclose($tmpFile);
// ll /tmp

tmpfile() 함수는 이 임시 파일을 생성하는 데 사용됩니다. 동시에 생성되는 파일은 직접 읽을 수 있는 w+ 유형입니다. 파일. 이 임시 파일은 fclose()가 호출되면 자동으로 삭제됩니다. 매뉴얼에는 이 기능을 사용하여 생성된 파일은 스크립트 종료 후 자동으로 삭제된다고 나와 있는데, 테스트 결과 스크립트 종료 시 파일이 삭제되지 않는 것으로 확인되었습니다.

함수를 호출하고 내용을 작성한 후 10초 동안 잠시 멈춥니다. 실제로 파일이 성공적으로 생성되었는지 확인하려면 /tmp 디렉터리로 이동하면 됩니다. 파일이 생성된 시간을 기준으로 해당 생성 파일을 찾았습니다. 그리고 10초 후 fclose()를 실행한 후 디렉토리를 다시 확인해 보면 해당 파일이 자동으로 삭제된 것을 확인할 수 있습니다.

디렉토리 상태에 따라 고유한 이름을 가진 임시 파일을 생성합니다.

마지막으로 PHP는 임시 파일 생성을 위한 매우 사용자 친화적인 기능도 제공합니다.

$tmpFile = tempnam('/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source', 'testtmp');
$f = fopen($tmpFile, "w");
fwrite($f, "I'm tmp file.");
// ll /tmp
// vim testtmpH7bptZ

// etc目录没有写权限
$tmpFile = tempnam('/etc', 'testtmp');
$f = fopen($tmpFile, "w");
fwrite($f, "I'm tmp file.");
// ll /etc
// ll /tmp
// vim testtmpTUNucM

tempnam() 함수는 디렉터리 상태에 따라 고유한 이름을 가진 임시 파일을 생성합니다. 디렉터리 상태에 따른 의미는 무엇입니까? 위의 코드 주석에서 볼 수 있듯이 두 번째 단락의 /etc 디렉터리는 일반적으로 루트 권한이 있는 디렉터리입니다. 루트 계정 권한이 없으면 파일을 생성하거나 수정할 수 없습니다. 권한이 없는 디렉터리이거나 전혀 존재하지 않는 디렉터리인 경우 tempnam() 함수는 임시 파일 디렉터리에 파일을 생성합니다. 첫 번째 코드와 같이 디렉토리가 정상적으로 존재하고 쓰기 가능한 경우 파일은 이 디렉토리에 정상적으로 생성됩니다.

tempnam() 함수의 두 번째 매개변수는 생성된 파일 이름의 접두사를 지정하는 것입니다. tmpfile() 함수는 파일 이름을 지정할 수 없지만, 이 함수는 파일 이름에 고정 접두사를 부여하고 접두사 뒤의 자동 생성된 파일 이름 부분이 고유한지 확인할 수 있습니다.

요약

임시 캐시로 사용하든 일부 파일을 생성하든 이 두 가지 임시 파일 작업 기능은 매우 유용합니다. 우리는 향후 개발에서 이러한 기능을 더 많이 사용하려고 노력할 수 있으며 아마도 생산성을 크게 향상시킬 수 있습니다.

테스트 코드:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/%E5%9C%A8PHP%E4%B8%AD%E6%93%8D%E4%BD%9C%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6.php

추천 학습: php 비디오 튜토리얼

위 내용은 PHP에서 임시 파일을 작동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제