Something that isn't mentioned above is that although ftp_ssl_connect may be available and will return an FTP stream it may not be usable. Take the following code (FTP login credentials are obviously set elsewhere):
<?php
var_dump(function_exists('ftp_ssl_connect'));
if(function_exists('ftp_ssl_connect'))
{
$ftp_connection = @ftp_ssl_connect($this->ftp_host);
}
else
{
$ftp_connection = @ftp_connect($this->ftp_host);
}
var_dump($ftp_connection);
if($ftp_connection)
{
ftp_login($ftp_connection, $this->ftp_user, $this->ftp_password);
}
// output: bool(true) resource(71) of type (FTP Buffer)
?>
From this you'd assume everything would work, ftp_ssl_connect is available and you have a connection. However, once you get to ftp_login, you could get this:
Warning [2] ftp_login() [function.ftp-login]: AUTH not understood
This is because the server is not configured to understand the encrypted details, even though the function is available and an SSL-FTP stream was opened.
If you are trying to use ftp_ssl_connect make sure you check if you can login after using it, and if not, connect again with standard ftp_connect.
Hope this is of use.
ftp_ssl_connect
(PHP 4 >= 4.3.0, PHP 5)
ftp_ssl_connect — Güvenli bir SSL-FTP bağlantısı açar
Açıklama
$adres
[, int $port = 21
[, int $zamanaşımı = 90
]] )
adres adresindeki sunucuya bir SSL-FTP bağlantısı
açar.
Bilginize: Bu işlev neden Windows'ta yok?
ftp_ssl_connect() işlevinin kullanılabilmesi için FTP ve OpenSSL eklentilerinin ikisinin de PHP içinde derlenmiş olması gerekir. Yani Windows için resmi derlenmiş PHP dağıtımlarında bu işlev tanımlı değildir. Bu işlevi Windows'ta kullanabilmek için PHP çalıştırılabilirlerini kendiniz derlemelisiniz.
Bilginize:
ftp_ssl_connect() işlevi sFTP ile kullanmak için tasarlanmamıştır. PHP ile sFTP kullanmak için ssh2_sftp() işlevine bakınız.
Değiştirgeler
-
adres -
FTP sunucusunun adresi. Bu dizgenin bir bölü çizgisi ile bitirilmemesi ve ftp:// ile öncelenmemesi gerekir.
-
port -
Bu değiştirge normal portun dışında bir port belirtmek için kullanılır. Verilmezse veya 0 belirtilirse öntanımlı FTP portu olan 21 kullanılır.
-
zamanaşımı -
Bu değiştirgede her türlü ağ işlemi için zaman aşımı belirtilir. Belirtilmezse 90 saniye öntanımlı değerdir. Bu zaman aşımını istediğiniz zaman ftp_set_option() ile değiştirebilir ve ftp_get_option() ile sorgulayabilirsiniz.
Dönen Değerler
Hata durumunda FALSE yoksa bir SSL-FTP akımı döner.
Sürüm Bilgisi
| Sürüm: | Açıklama |
|---|---|
| 5.2.2 |
Bu işlev artık SSL bağlantısı kullanamadığı zaman SSL'siz bir
bağlantı kurmak yerine FALSE ile dönüyor.
|
Örnekler
Örnek 1 - ftp_ssl_connect() örneği
<?php
// Temel SSL bağlantısını kuralım
$conn_id = ftp_ssl_connect($ftp_server);
// kullanıcı adı ve parola ile oturum açalım
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
echo ftp_pwd($conn_id); // /
// bağlantıyı kapatalım
ftp_close($conn_id);
?>
Since ftp_ssl_connect() requires SSL compiled into PHP, Windows users will need to compile their own PHP this way or download it from another source. Here's one such (and trusted) source:
* http://ftp.emini.dk/pub/php/win32/openssl/
