PHP x86: 외부 프로그램 없이 2GB를 초과하는 파일 크기 확인
PHP에서 2GB보다 큰 파일의 파일 크기 검색 32비트 플랫폼의 GB는 문제가 됩니다. filesize(), stat(), fseek()와 같은 표준 PHP 함수는 부족합니다.
이 문제를 해결하기 위해 Big File Tools라는 포괄적인 오픈 소스 프로젝트가 등장했습니다. 여기에는 32비트 시스템에서도 PHP로 2GB가 넘는 파일을 관리할 수 있는 독창적인 기술이 포함되어 있습니다.
Big File Tools에서 사용하는 한 가지 방법은 플랫폼별 셸 명령을 활용하는 것입니다. Windows의 경우 쉘 대체 수정자를 활용합니다. *nix 및 macOS의 경우 stat 명령을 사용합니다. 이것이 실패하면 COM(특히 Windows의 경우)으로 전환됩니다. 최후의 수단으로 filesize()로 되돌아갑니다.
다음은 이 접근 방식을 사용하여 대용량 파일의 파일 크기를 결정하는 방법을 보여주는 코드 조각입니다.
<code class="php">function filesize64($file) { $size = null; // Try shell command if (function_exists('exec') && !ini_get('safe_mode')) { $cmd = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') ? "for %F in (\"$file\") do @echo %~zF" : "stat -c%s \"$file\""; @exec($cmd, $output); if (is_array($output) && ctype_digit($size = trim(implode("\n", $output)))) { return $size; } } // Try Windows COM interface if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' && class_exists("COM")) { try { $fsobj = new COM('Scripting.FileSystemObject'); $f = $fsobj->GetFile(realpath($file)); $size = $f->Size; } catch (Exception $e) {} if (ctype_digit($size)) { return $size; } } // Fall back to filesize() return filesize($file); }</code>
위 내용은 x86 시스템의 PHP에서 2GB가 넘는 파일의 파일 크기를 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!