2012-07-10 9 views
-2

내가 FTP 서버가 다음 거기에 어떤 파일을 기반으로 데이터베이스에 데이터를 삽입 열립니다 몇 가지 코드를foreach 루프는

내 문제는 $fname2 단지로 첫 번째 파일을 호출하는 것 같습니다이다 변수 대신 모든 파일명

$contents = ftp_nlist($conn_id, $dir); 
$unalteredcontents = ftp_nlist($conn_id, $dir); 

foreach($contents as $fname) 
{ 
    if (($fname != '.') && ($fname != '..')) 
    { 
     foreach ($unalteredcontents as $fname2) 
     { 
      if (($fname2 != '.') && ($fname2 !='..')) 
      { 
       $url = "http://website/userid/".$uid."/".$fname2.""; 
      } 
     } 

$fname2

통해 반복 루프 전체 있는 통찰을위한 변수로 첫 번째 파일을 리턴되도록하여 유지?

+0

루프가 실행될 때마다 값을'$ url'에 할당하지만 그 값으로 아무 것도하지 않습니다. 루프가 종료되면'$ fname2'의 마지막 값을 갖습니다. 당신은'$ url'을 무엇으로 사용하려고합니까? –

+0

$ url이 루프의 뒷부분에있는 포함 파일에서 호출됩니다. –

답변

0

저에게 맞습니다. 여기에 내 테스트 코드가있다 :

<?php 
// set up basic connection 
$ftp_server = "ftp.yoursite.com"; 
$ftp_user_name = "username"; 
$ftp_user_pass = "password"; 
$dir = "./public_html/cgi-bin"; // just a sample directory 
$uid = 1; 

$conn_id = ftp_connect($ftp_server); 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
$contents = ftp_nlist($conn_id, $dir); 
$unalteredcontents = ftp_nlist($conn_id, $dir); 

foreach($contents as $fname) 
{ 
    if (($fname != '.') && ($fname != '..')) 
    { 
     foreach ($unalteredcontents as $fname2) 
     { 
      if (($fname2 != '.') && ($fname2 !='..')) 
      { 
       echo "http://website/userid/".$uid."/".$fname2."\n"; 
      } 
     } 
    } 
} 

나는 브래킷을 닫고 명시 적으로 ftp 관련 변수를 만들었다.

특정 인스턴스에서 어떤 일이 일어나고 있는지 알기가 어렵습니다. 문제의 디렉토리에 실제로 하나 이상의 파일이 있다고 확신합니까?