2012-03-09 3 views
1

내 서버에 'images'라는 폴더가 있습니다.이 폴더에는 이미지가있는 폴더를 최대 10 개까지 가질 수 있습니다. 대신여러 개의 디렉토리에서 모든 이미지를 가져 와서 PHP로 표시합니다.

<img src="images/people/001.jpg"> 
<img src="images/landscape/001.jpg"> 

등 등

내가 '이미지'의 주요 디렉토리에있는 모든 폴더에있는 모든 이미지를 얻기 위해 PHP를 사용할 수 각 이미지의 태그를 작성

?

필자는 PHP에 대해 거의 경험이 없었기 때문에 이것이 고심하고 있습니다.

나는 어쩌면 누군가가 도움이 될 수 있습니다 ' <div class="box"><img src="images/FOLDER/IMAGENAME.jpg"></div>'

의 배열을 반환하는 PHP가 필요합니다.

답변

3
function ListFiles($dir) { 
    if($dh = opendir($dir)) { 
     $files = Array(); 
     $inner_files = Array(); 
     while($file = readdir($dh)) { 
      if($file != "." && $file != ".." && $file[0] != '.') { 
       if(is_dir($dir . "/" . $file)) { 
        $inner_files = ListFiles($dir . "/" . $file); 
        if(is_array($inner_files)) $files = array_merge($files, $inner_files); 
       } else { 
        array_push($files, $dir . "/" . $file); 
       } 
      } 
     } 
     closedir($dh); 
     return $files; 
    } 
} 
foreach (ListFiles('/path/to/images') as $key=>$file){ 
    echo "<div class=\"box\"><img src=\"$file\"/></div>"; 
} 

이와 비슷한?

3

더 간단한 soluton. 내장 된 glob 기능을 사용할 수 있습니다. 모든 이미지는 .jpg를 있다고 가정 :

$result = array(); 
$dir = 'images/'; 

foreach(glob($dir.'*.jpg') as $filename) { 
    $result[] = "<div class=\"box\"><img src=\"$filename\"></div>"; 
} 

는 그런 다음 $result의 각 요소를 에코하거나 당신이 무엇을 할 수 있습니다.

+0

이 방법은 훨씬 간단하지만 사이트에 들어가는 이미지 파일을 제어 할 수 없기 때문에 모든 이미지 유형을 허용하는 것이 가장 좋습니다. 웹 템플리트에 들어갑니다. – Ryan

+0

@Ryan은 glob() 매개 변수를 변경하여'*. *'대신'*. *'를 사용합니다. – Jared

관련 문제