PHP 코드에서 Linux 명령을 사용하여 모든 디렉터리 및 하위 디렉터리에서 모든 파일 이름과 크기 및 파일 경로를 가져오는 방법입니다.
스캔 코드를 실행 중입니다. 파일을 가져와서 검사를 수행해야 합니다. 문제는 리눅스 서버에서 실행하면 스캔을 수행하는데 시간이 오래 걸린다는 점이다. 그래서 나는 내 PHP 스크립트에 Linux 명령을 추가하고 서버가 Linux인지 확인한 다음 내 기능 대신 이러한 명령을 사용하여 스캔 속도를 높일 수 있다고 생각했습니다.
답변1
순진한 솔루션:
$files = system('find / -printf "%p %b\n"');
설명하다:
$files = system(...)
지정된 쉘 명령이 실행되고 출력이 변수에 저장됩니다$files
.find / -printf("%p %b\n")
이find
명령은 파일 시스템 루트부터 시작하는 모든 파일을 나열합니다/
. 이러한-printf
옵션은find
지정된 형식에 따라 출력 형식을 지정합니다. 형식 문자열"%p %b\n"
의 결과는find
출력 파일 경로(%p
), 공백, 512바이트 청크 단위의 파일 크기(%b
), 마지막으로 개행 문자(\n
)입니다. 이러한 옵션은 파일 크기를 1KB 청크로 인쇄하는 형식 지정자-printf
도 지원합니다 .%k