PHP에서 디렉터리 내용 분석하기
파일과 디렉터리를 모두 포함하는 dir라는 디렉터리가
주어져 있다고 가정해 봅시다.
이 디렉터리에서 이름 배열을 가져와 보겠습니다:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
각 이름이 파일인지 디렉터리인지 확인해 봅시다:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
스캔하는 디렉터리 이름이 코드 두 곳에 작성되어 있습니다. 이는 그리 편리하지 않습니다. 이 이름을 별도의 변수로 빼내겠습니다:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
이제 모든 파일의 내용을 화면에 출력해 보겠습니다:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
파일 경로가 두 번 계산된다는 것을 알 수 있습니다. 이를 별도의 변수로 빼내겠습니다:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // 파일 경로
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
디렉터리가 주어져 있습니다. 이 디렉터리의 하위 디렉터리 이름을 세로로 한 줄씩 화면에 출력하세요.
디렉터리가 주어져 있습니다. 이 디렉터리의 파일 이름을 세로로 한 줄씩 화면에 출력하세요.
디렉터리가 주어져 있습니다. 이 디렉터리의 각 파일 끝에 현재 시각을 추가하세요.