2012-06-19 181 views
1

你好,我有我的代碼連接到我的FTP服務器PHP連接到FTP服務器

$conn_id = ftp_connect($ftp_server); 

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// check connection 
if ((!$conn_id) || (!$login_result)) { 
echo "FTP connection has failed!"; 
echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
exit; 
} else { 
echo "Connected to $ftp_server, for user $ftp_user_name"; 
//ftp_mkdir($conn_id, $dir); 
$contents = ftp_nlist($conn_id, $dir); 
//var_dump($contents); 
echo "<select name=\"file\">\n"; 
// Now loop through the files, echoing out a new select option for each one 
if (($contents != '.') && ($contents != '..')) 
{ 

foreach($contents as $fname) 

{ 
    echo "<option>{$fname}</option>\n"; 
} 
echo "</select>\n"; 

} 
} 

但頁面仍回顯該目錄爲。 & ..儘管$ contents!= bit;什麼不見​​了?

改變這一點 - >

if (($fname != '.') && ($fname != '..')) 
{ 

foreach($contents as $fname) 

{ 
    echo "<option>{$fname}</option>\n"; 
} 
echo "</select>\n"; 

} 
} 

但還是同樣的結果

回答

3

你可能想比較$fname在循環中反被...。這可能更多你想要的。

+0

我不確定你的意思,是不是和現在相比? –

+0

現在,您正在比較'$ contents' - 這恰好是一個數組,所以它永遠不會等於''。'或''..''。但是你想要做的是比較數組的元素,所以在foreach循環內比較需要是'if($ fname!='。'&& $ fname!='..')'。 –

+0

更新,但它stil給了我。 &.. –