2012-06-19 4 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! = Бит; чего не хватает?

изменено на это ->

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

foreach($contents as $fname) 

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

} 
} 

, но все еще такой же результат

ответ

3

Вы можете сравнить $fname внутри цикла против того . или ... Это, вероятно, больше того, что вы хотите.

+0

Я не уверен, что вы имеете в виду, разве это не сравнивается с тем, как сейчас? –

+0

Теперь вы сравниваете '$ contents' - который является массивом, поэтому он никогда не будет равен'. .'' или '' .. ''. Но вы хотите сравнить элементы этого массива, поэтому сравнение должно быть 'if ($ fname! = '.' && $ fname! = '..')' внутри цикла foreach. –

+0

обновлен, но это стильно дает мне. & .. –

Смежные вопросы