2011-08-12 3 views
-2

가능한 중복은 :
PHP recursive directory path
PHP Get all subdirectories of a given directory
PHP: Get list of all filenames contained within my images directory어떻게 PHP에서 하위 폴더 데이터를 읽을 수 있습니까?

좀 하위 폴더가 포함 된 서버의 디렉토리가 있습니다. 하위 폴더에는 일부 pdf 파일이 들어 있습니다. 모든 하위 폴더 이름과 하위 폴더 데이터도 표시해야합니다. 하위 폴더에서 데이터를 읽는 방법을 알려주세요. 여기

여기
<?php 
$number=$_REQUEST['Username']; 
$folder=dir("UserIds/".$Username."/"); 
$i=0; 
while($folderEntry=$folder->read()) 
{ 
if($folderEntry !=".." && $folderEntry !=".") 
     { 
     $message[$i]="http://www.myappdemo.com/appinstaller/UserIds/$number/".$folderEntry; 
     $i++; 
     } 
    } 
echo json_encode($message); 
$folder->close(); 
?> 

나는 특정 디렉토리 데이터가 표시됩니다 것을 필요로하는 디렉토리의 이름을 입력 오전
나에게 사전에

감사합니다 ...

답변

0

하면 안내하시기 바랍니다 내 코드입니다 너는 너를 대체한다

while($folderEntry=$folder->read()) 
{ 
    if($folderEntry !=".." && $folderEntry !=".") 
    { 
     $message[$i]="http://www.myappdemo.com/appinstaller/UserIds/$number/".$folderEntry; 
     $i++; 
    } 
} 
while (false !== ($folderEntry = $folder->read())) { 
    if($folderEntry !=".." && $folderEntry !=".") 
    { 
     $message[$i]="http://www.myappdemo.com/appinstaller/UserIds/$number/".$folderEntry; 
     $i++; 
    } 
} 

와난 당신이 것 같아요.

그리고 내가 설정 한 사용자 이름 $ 0을 어디에도 볼 수 없습니다. $folder=dir("UserIds/".$Username."/");$folder=dir("UserIds/".$number."/");이어야합니다.

+0

ho..thanks 예는 $ 수는 여기에 내가 디렉토리 데이터를 사용자 이름을 얻을 수있다 그러나 나는 또한 PLZ 어떻게 얻는 하위 폴더의 데이터가 코드 위 – user883594

+0

내가 얻을 응답이 나를 인도 또한 하위 폴더의 데이터가 필요 [ "http : \/\/www.myappdemo.com \/appinstaller \/UserIds \/kumareawqwe \/2011-August-12"] 여기 2011 년 8 월 12 일에는 하위 폴더 데이터가 필요합니다. 이걸 얻는 방법을 말해주세요 – user883594

+0

죄송합니다, 원래 메시지를 조금이라도 성급하게 읽습니다. 하위 폴더 부분을 해결하기 위해 is_dir (http://www.php.net/manual/en/function.is-dir.php)을 사용하여 $ folderEntry를 검사하는 재귀 적 방법으로 모든 것을 중단 할 것입니다. – johangu

2

. 당신의 응답을

$message=get_files("UserIds/".$Username); 
function get_files($dir){ 
    $message=array(); 

    $folder=dir($dir); 
    while($folderEntry=$folder->read()) 
    { 
     if($folderEntry !=".." && $folderEntry !=".") 
     { 

      $message[]="http://www.myappdemo.com/appinstaller/".$dir."/".$folderEntry; 
      if (is_dir($dir."/".$folderEntry)){ 
      $new_message=get_files($dir."/".$folderEntry); 
      if (is_array($new_message)){ 
       $message=array_merge($message,$new_message); 
      } 
      } 
     } 
    } 
    $folder->close(); 
    return $message; 
} 
+0

답장을 보내 주셔서 감사합니다 userId 하위 폴더 이름이 누락 된 후 코드 [http : \/\/appinstaller \/UserIds \/\/Winter.jpg] : array_merge() [function.array-merge] : 인수 2는 /home/myappdemo/myappdemo.com/appinstaller/Directory.php의 배열이 아닙니다. null – user883594

+0

배열을 추가하려면 내 메시지를 편집했습니다. 폴더 이름을 수정하려면 표시하려는 메시지를 반영하도록 폴더 이름을 변경해야 할 수 있습니다. 나는 그 생각을 게시하기 만했다. 또한 왜 array_merge 문제가 발생했는지 정확히 알지 못했거나 정확하게 게시했거나 새로운 수익을 추가 했습니까? 하지만 어쨌든 나는 경우에 대비해서 is_array를 넣는다. –

관련 문제