도아주세요.. ㅜ_ㅜ..
본문
아까전의 질문을 살짝 변형해서 다시 질문드립니다.
data/memberfile/ 이폴더를 중심으로 해서
for 문이나 while 문으로 리스트를 짜고 싶은데.. 도아주세요 ....
db 로 짜는건 할수가있는데 일반 폴더식으로 for 문이나 while 문을 짜는법을 모르겠네요..혹시나 이런거 있긴한거지요 ?..
답변 3
함수가 몇가지 사용이 됩니다
opendir()
readdir();
closedir();
세개의 함수가 필요하구요
이함수의 정확한 사용법은 php 메뉴얼을 참조 하시면 됩니다
파일명과 디렉토리 명을 따로 저장해 보겠습니다
$pwd = "검색하고 싶은 디렉토리";
//디렉토리 명만 뽑아오기
$dir_handle = opendir($pwd);
while(false !== ($element = readdir($dir_handle))){
if(is_dir($pwd.$element)){
if($element != '.' && $element != '..'){
$element_dir[] = $element."|dir"; //디렉토리명
}
}
}
closedir($dir_handle);
//파일명만 불러오기
$dir_handle = opendir($pwd);
while(false !== ($element = readdir($dir_handle))){
if(is_file($pwd.$element)){
$element_file[] = $element."|file"; //파일명
}
}
closedir($dir_handle);
위와같이 파일명과 디렉토리 명을 따로 불러오는 이유는 이놈의 파일이나 디렉토리들을 정리하고 보기 편하게 하기 위해서 입니다
이렇게 저장된 변수들을 usort()를 통해서 문자별로 정렬을 시켜줍니다
그리고 출력을 해주시면 되겠지요
//sort($element_dir); // 디렉토리 문자별 정리
usort($element_dir,"strnatcmp");
if($element_file){
//sort($element_file); // 파일 문자별 정리
usort($element_file,"strnatcmp");
$element_dirfile = array_merge($element_dir,$element_file);
}else{
$element_dirfile = $element_dir;
}
이제 정렬이 끝났으니 출력해야겠죠
$element_num = sizeof($element_dirfile);
for($i=0; $i<$element_num; $i++){
echo($element_dirfile[$i]."<br/>");
}
array 가 뜨는건 디렉토리 지정을 제대로 안해줘서 이고
코드 오류가 나는건 $element 를 정의 안해줘서겠죠..
documentRoot 기준으로 data/memberfile/ 까지의 경로를 $directory 에 매칭해주세요.