DISK_TOTAL_SPACE 함수는 PHP의 함수로 지정된 디렉토리가있는 디스크 파티션의 총 공간을 반환합니다. 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">disk_total_space</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$directory</span></span><span>): </span><span><span class="hljs-keyword">float</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>여기서 $ 디렉토리 매개 변수는 디스크 공간을 확인 해야하는 경로입니다. 성공적으로 실행되면 함수는 총 공간 크기 (바이트)를 나타내는 부동 번호를 반환합니다. 오류가 발생하거나 디스크 공간에 액세스 할 수없는 경우 함수는 False를 반환합니다.
PHP 스크립트에 지정된 디렉토리에 대한 파일 시스템 정보를 읽을 수있는 권한이 충분하지 않으면 disk_total_space는 false를 반환합니다. 이것은 일반적으로 다음과 같은 상황에서 발생합니다.
현재 PHP 프로세스에는 파일 시스템 액세스가 충분하지 않습니다.
액세스는 제한된 디렉토리입니다 (예 : 시스템 파일 디렉토리 또는 액세스로 제한되는 일부 폴더).
DISK_TOTAL_SPACE 함수는 들어오는 경로가 유효하고 장착 된 디렉토리 여야합니다. 존재하지 않는 경로를 전달하거나 경로가 마운트에 실패한 파티션을 가리키면 함수도 False를 반환합니다.
일부 특수 파일 시스템 (예 : 네트워크 장착 스토리지 또는 일부 비표준 장착 유형 사용)으로 인해 DISK_TOTAL_SPACE가 제대로 작동하지 않을 수 있습니다. PHP는 특히 특정 운영 체제 또는 특정 환경에서 특정 유형의 파일 시스템을 부적절하게 지원합니다.
공유 호스팅과 같은 특정 환경에서 디스크 공간 쿼리 권한이 제한되며 PHP 스크립트는 디스크 관련 정보를 얻지 못할 수 있습니다. 이것은 일반적으로 보안상의 이유로 시스템 관리자가 설정 한 제한입니다.
PHP 스크립트를 실행하는 사용자에게 파일 시스템에 액세스하기에 충분한 권한이 있는지 확인하십시오. LS -L 명령을 사용하여 디렉토리 권한을 확인하고 PHP 스크립트 사용자에게 충분한 읽기 권한이 있는지 확인할 수 있습니다. 권한이 충분하지 않은 경우 CHMOD 명령을 사용하여 디렉토리 권한을 수정할 수 있습니다.
<span><span><span class="hljs-built_in">chmod</span></span><span> 755 /path/to/directory
</span></span>DISK_TOTAL_SPACE 로 전달 된 경로가 유효하고 존재하는지 확인하십시오. is_dir () 함수를 사용하여 경로가 존재하는지 확인하고 유효한 디렉토리인지 확인할 수 있습니다. 예를 들어:
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>)) {
</span><span><span class="hljs-variable">$totalSpace</span></span><span> = </span><span><span class="hljs-title function_ invoke__">disk_total_space</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$totalSpace</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"디스크 공간 정보를 얻을 수 없습니다。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"총 디스크 공간: "</span></span><span> . </span><span><span class="hljs-variable">$totalSpace</span></span><span> . </span><span><span class="hljs-string">" 바이트"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"지정된 경로는 유효하지 않거나 디렉토리가 아닙니다。"</span></span><span>;
}
</span></span>PHP 환경에서 사용중인 파일 시스템을 지원하는지 확인하십시오. 시스템의 파일 시스템 유형을보고 시스템 유형을 정기적으로 로컬 스토리지 유형인지 확인할 수 있습니다. NFS와 같은 특수 네트워크 파일 시스템 인 경우 관련 문서를 참조하거나 시스템 관리자에게 문의하여 관련 제한이 있는지 확인해야 할 수도 있습니다.
DISK_TOTAL_SPACE가 여전히 디스크 공간을 얻을 수없는 경우 운영 체제에서 제공 한 명령을 사용하여 디스크 정보를 얻는 것을 고려할 수 있습니다. 예를 들어 Linux에서는 DF 명령을 실행하여 디스크 공간 데이터를 얻을 수 있습니다.
<span><span><span class="hljs-variable">$df</span></span><span> = </span><span><span class="hljs-title function_ invoke__">shell_exec</span></span><span>(</span><span><span class="hljs-string">'df /path/to/directory'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$df</span></span><span>;
</span></span>Windows에서는 WMIC 명령을 통해 디스크 정보를 얻을 수 있습니다.
<span><span><span class="hljs-variable">$wmic</span></span><span> = </span><span><span class="hljs-title function_ invoke__">shell_exec</span></span><span>(</span><span><span class="hljs-string">'wmic logicaldisk get size,freespace,caption'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$wmic</span></span><span>;
</span></span>이 명령은 PHP 제한을 우회하고 운영 체제 수준에서 직접 디스크 공간을 얻을 수 있습니다.
DISK_TOTAL_SPACE 가 디스크 공간을 얻지 못하면 먼저 권한 문제와 경로의 유효성을 확인해야합니다. 문제가 지속되면 디스크 정보를 얻기 위해 운영 체제 명령을 직접 호출하는 것과 같은 다른 방법을 고려할 수 있습니다. 이러한 방법을 사용하면 DISK_TOTAL_SPACE 기능의 실패 문제를 효과적으로 진단하고 해결할 수 있습니다.