مرجع FTP (PHP FTP)
در این مرجع، توابع FTP در PHP را می بینی. «FTP» یعنی جابه جایی فایل ها بین رایانه ها. با این توابع وصل می شوی، لاگین می کنی، سپس آپلود و دانلود انجام می دهی.
معرفی کوتاه FTP در PHP
توابع FTP دسترسی «کلاینت (Client)» به سرور فایل را می دهند. می توانی باز کنی، وارد شوی، سپس فایل ها را فهرست، حذف، نام گذاری و منتقل کنی. برخی سرورها همه توابع را پشتیبانی نمی کنند.
نصب و فعال سازی
در لینوکس، PHP باید با --enable-ftp کامپایل شود. در ویندوز، پشتیبانی به صورت پیش فرض هست.
نمونه ساده: اتصال و فهرست پوشه
<?php
$host = "ftp.example.com";
$user = "username";
$pass = "password";
$conn = ftp_connect($host);
if ($conn === false) {
die("cannot connect\n");
}
$ok = ftp_login($conn, $user, $pass);
if ($ok === false) {
ftp_close($conn);
die("login failed\n");
}
ftp_pasv($conn, true);
$list = ftp_nlist($conn, ".");
print_r($list);
ftp_close($conn);
?>
آپلود و دانلود فایل
<?php
$conn = ftp_connect("ftp.example.com");
ftp_login($conn, "username", "password");
ftp_pasv($conn, true);
$putOk = ftp_put($conn, "/remote/file.txt", "local.txt", FTP_BINARY);
if ($putOk === false) {
echo "upload failed\n";
}
$getOk = ftp_get($conn, "download.txt", "/remote/file.txt", FTP_BINARY);
if ($getOk === false) {
echo "download failed\n";
}
ftp_close($conn);
?>
انتقال غیرمسدودکننده (non-blocking)
<?php
$conn = ftp_connect("ftp.example.com");
ftp_login($conn, "username", "password");
$ret = ftp_nb_put($conn, "/remote/big.zip", "big.zip", FTP_BINARY);
while ($ret === FTP_MOREDATA) {
// do something else
$ret = ftp_nb_continue($conn);
}
if ($ret === FTP_FINISHED) {
echo "done\n";
} else if ($ret === FTP_FAILED) {
echo "failed\n";
}
ftp_close($conn);
?>
ثابت های کاربردی
FTP_ASCII/FTP_TEXT: متن ساده.FTP_BINARY/FTP_IMAGE: فایل های باینری.FTP_MOREDATA: انتقال در حال انجام.FTP_FINISHED: انتقال تمام شده.FTP_FAILED: انتقال ناموفق.FTP_TIMEOUT_SEC: زمان انتظار عملیات شبکه.
گام های عملی
- اتصال با
ftp_connectبرقرار کن. - با
ftp_loginوارد شو. - در صورت نیاز،
ftp_pasvرا فعال کن. - فهرست، آپلود، دانلود را اجرا کن.
- اتصال را با
ftp_closeببند.
نکته: اگر فقط خواندن/نوشتن ساده می خواهی، از ftp:// wrapper با توابع فایل استفاده کن. ساده تر است.
پیوندهای مفید
- اتصال FTP با ftp_connect برای شروع اتصال.
- ورود با ftp_login برای احراز هویت.
- آپلود فایل با ftp_put برای انتقال فایل.
- دانلود فایل با ftp_get برای دریافت فایل.
- W3Schools: PHP FTP Functions فهرست کامل توابع.
- ftp_ssl_connect() برای اتصال امن.
جمع بندی سریع
- FTP برای جابه جایی فایل هاست.
- اتصال، لاگین، سپس انتقال انجام بده.
- برای باینری، از
FTP_BINARYاستفاده کن. - حالت غیرمسدودکننده با nb مفید است.
- در پایان، اتصال را ببند.